Tim

Footprints in the snow of a warped mind

TheSiteDoctor

Where to find me

Flickr Icon  Twitter Icon  Linked In Icon  FaceBook Icon  Windows Live Alerts Butterfly  RSS 2.0 

Tag Cloud

AJAX (4) ASP (6) ASP.Net (50) Error Reporting (4) Web Service (1) WSDL (1) Atlas (2) Business (76) Business Start-up Advice (25) Client (14) Expanding Your Business (17) C# (16) Canoeing (4) Canoe Racing (5) Cheshire Ring Race (5) Racing (2) Training (4) CIMA (1) Cisco (1) 7970G (1) CSS (3) dasBlog (4) DDD (1) Design (9) Icons (1) Development (12) General (39) Christmas (6) Fun and Games (11) Internet (22) Random (46) RX-8 (8) Home Cinema (2) Hosting (2) IIS (10) iPhone (1) JavaScript (4) jQuery (1) Marketing (5) Email (1) Multipack (1) Networking (2) Nintendo (1) OS Commerce (1) Photography (1) PHP (1) PowerShell (2) Press Release (1) Productivity (2) Security (2) SEO (5) Server Maintenance (4) Server Management (9) Social Media (1) Social Networking (2) Experiment (1) Software (9) Office (5) Visual Studio (12) Windows (4) Vista (1) SQL (1) SQL Server (13) Stored Procedure (1) Testing (1) The Site Doctor (104) Turnover Challenge (1) Twitter (2) Umbraco (17) 2009 (1) Web Development (54) WebDD (33) Wii (1)

Blog Archive

Search

<July 2010>
SunMonTueWedThuFriSat
27282930123
45678910
11121314151617
18192021222324
25262728293031
1234567

Recent Comments

Blog Archive

Various Links

Blogs I Read

[Feed] Google Blog
Official Google Webmaster Central Blog
[Feed] Matt Cutts
Gadgets, Google, and SEO
[Feed] Ol' Deano's Blog
My mate Dean's blog on my space, equally as random as mine but not off on as much of a tangent!
[Feed] Sam's Blog
Sam is one of my younger brothers studying Product Design and Manufacture at Loughborough, this is his blog :) Enjoy!

Recent Tracks

last.fm - The Social Music Revolution

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.

newtelligence dasBlog 2.2.8279.16125

Send mail to the author(s) Email Me (Tim Gaunt)

© 2010 Tim Gaunt.

Sign In

    # Monday, July 12, 2010

    Automatically add a show and hide link to any object with jQuery

    Monday, July 12, 2010 8:09:58 PM (GMT Daylight Time, UTC+01:00)

    jquery-logo_png[1]There are plenty of tutorials around that show you how to show or hide a div with jQuery, you can find a load on Google but I wanted something that was re-usable throughout our projects so I created the addShowHideLink jQuery plugin.

    We’ve been using it across a few projects including Crisis Cover for a while now and it’s catered for all our needs. Let me know if there’s any other options you want added.

    I’ve not published any of our plug-ins before so forgive me if there are some obvious errors but I figured someone else would find it useful.

    What does it do?

    Simple: It hides the specified object and adds a link that shows the object when clicked. It also swaps the show text to the specified hide text automatically.

    How do I use it?

    I’ve kept it as simple as possible but have hopefully given it enough functionality to suit your needs.

    Basic Usage

    $('#objectToHide').addShowHideLink();

    Used with options

    $('#objectToHide').addShowHideLink({ 
    		linkClass: 'showHideLnk',
    		paraClass: 'showHide',
    		openClass: 'showHideOpen',
    		showText: 'Show Advanced Options',
    		hideText: 'Hide Advanced Options',
    		linkActions: function(){
    			alert('The link was clicked');
    		}
    	});
    

     

    How do I get it?

    I’ve uploaded a more complete example to: http://blogs.thesitedoctor.co.uk/tim/Plugins/addShowHideLink/ so you can get a quick idea of what it does.

    You can download the plug-in here.

    Thanks to Trevor Morris for his jQuery skeleton starter framework.

    # Wednesday, June 30, 2010

    Helo command rejected: need fully-qualified hostname when sending emails

    Wednesday, June 30, 2010 4:20:08 PM (GMT Daylight Time, UTC+01:00)

    Simple tip this afternoon. You may have got the following error when sending emails through ASP.Net’s built in mail server before:

    From: postmaster@YourWebserversName [mailto:postmaster@YourWebserversName] 
    Sent: 25 June 2010 13:22
    To: sender@sendingdomainname.com
    Subject: Delivery Status Notification (Failure)
    
    This is an automatically generated Delivery Status Notification.
    
    Delivery to the following recipients failed.
    
          recipient@recievingdomainname.com
    
    Reporting-MTA: dns;YourWebserversName
    Received-From-MTA: dns;YourWebserversName
    Arrival-Date: Fri, 25 Jun 2010 13:21:30 +0100
    
    Final-Recipient: rfc822;recipient@recievingdomainname.com
    Action: failed
    Status: 5.5.0
    Diagnostic-Code: smtp;504 <YourWebserversName>: Helo command rejected: need fully-qualified hostname

     

    The fix is easy:

    1. Open IIS
    2. View the properties of you Default SMTP Virtual Server
    3. Go to the “Delivery” tab
    4. Click the “Advanced” button (in the bottom right corner)
    5. Under “Fully-qualified domain name” enter a domain name that points to the server
    6. Click Ok until you’re back to IIS
    # Monday, July 27, 2009

    CodeGarden 09 Open Space Minutes - Space 1: How to sell Umbraco

    Monday, July 27, 2009 10:53:28 PM (GMT Daylight Time, UTC+01:00)

    It's taken some time to get here and there's still more to add as I think this is a pretty big topic but I thought I'd get started. I wanted to keep the session more focused on the selling points of Umbraco and how people pitch Umbraco to the clients than selling techniques which on the whole we managed to do.

    The first thing I stressed was that I wasn't going to teach you how to sell or selling techniques as I've never found that hard selling works -though I'm not saying it doesn't, I just prefer to educate the client into the most suitable solution (even if that isn't us).

    There were a number of questions that were raised and I'll answer what I can here, if you were at the session and I've missed something, please let me know and I'll get it added:

    1. What are the key selling points of Umbraco
    2. How do you pitch Umbraco
    3. Do you tell clients it's open source (or use that as a sales point)?
    4. How do you price Umbraco
    5. Once you've won, what do you ask your client
    6. How do you support Umbraco
    7. How do you get around the question of "What happens if you get hit by a bus?"

    What are the key selling points of Umbraco

    A couple of the attendees came up with better 30second sales pitches so I'm sure they'll post those up shortly but here's a few I remember:

    • It's easy to use -you don't need any previous computer experience
    • You can edit any page's content yourself at any time
    • It's highly flexible and lightweight
    • It's search engine friendly
    • It's open source (this really can be a selling point at the right time)

    Do you tell clients it's open source (or use that as a sales point)?

    We do and we don't. Again it really comes down to who you're pitching Umbraco to. Where the client has had issues with developers not releasing source etc then it's clearly a selling point.

    Generally we do tend to explain to clients that we will base their website on an open source project that we then build on and customise further to suit their needs and that by using best practice methodologies, any developer can in theory pick up the system and continue to develop it (even if they have no experience of Umbraco).

    How do you price Umbraco

    This question was asked in a couple of different ways throughout the session and it's a topic in itself (see the article I wrote a while ago about pricing your work).

    If you look at Umbraco in the right way you'll see that it's actually rather easy to price as there are a few components that you can sell either individually or together:

    • Installation and configuration
    • Customisation
    • Hosting
    • Support

    All you need to do is work out a minimum cost for each component and then that will give you a core system cost.

    Once you have your core Umbraco costs (don't forget to factor in your license costs) you can then alter the costs accordingly for your client -and this has to be on a case-by-case basis. 

    How do you pitch Umbraco

    This is easy, there are so many selling points to Umbraco that regardless of what the client is looking for, as long as it's CMS based, Umbraco will have some benefit you can overview to the client.

    When pitching Umbraco, we have found educating the user as to the benefits and what the client should be looking for in other systems. If you do this, then the majority of the time, the rest of the competition falls by the wayside.

    If the client is a large corporate it's always worth mentioning that it offers much of the functionality that SharePoint does but with little of the cost (or setup pain!).

    Once you've won the contract, what do you ask your client

    The first thing to do is to get all the information you need to complete your contract (or at least tell your client what you'll need and when). You should know what you'll need already but we tend to ask for:

    • Design inspiration (websites the client does and doesn't like -and why)
    • Logos and other source imagery
    • Text for the website (you'd be best to load the initial content during training but get the client to think about it while you're developing or you'll never get there!)

    Next, you'll need to make sure your paperwork is in order. Once you have agreed the general premise of your contract, it's important that you confirm all deliverables (what you'll be doing for the client) in a work order with the client. This avoids an ambiguity on what you'll be delivering and when. This doesn't need to be pages of text (though sometimes it needs to be) but avoids disagreements later.

    You should always request signed work order and deposit (we request a minimum of 20% regardless of project spend) at a minimum before starting any work.

    Once you have the signed work order (you sign one for the client to keep and keep one yourself), you can start thinking about the project. If it'll take longer than a week to deliver, I recommend you provide the client with rough timescales, this will have the added benefit of helping you focus your mind.

    How do you support Umbraco

    This is something that Paul Sterling addressed through another session and if he doesn't write up his notes I'll make a few notes in another post.

    How do you get around the question of "What happens if you get hit by a bus?"

    Although this was asked a couple of times throughout the session, I avoided answering it a little due to a conflict of interest. For the past few months we've been working hard on a new system called Crisis Cover which has been designed to help you with this exact question.

    apple-touch-icon[1] Crisis Cover monitors you to ensure that you're still around and if you don't respond to a number of alerts, it will contact your clients informing there's something wrong.

    I'll post more information about Crisis Cover, but if you're interested in getting involved with the beta, leave me your email and I'll get one sent out.

    In Closing

    There is a lot of information about selling and business in general in my previous post "Business start-up advice" which if you're starting out, I really recommend you reading as it should give you a really good start (and includes example Service Level Agreements, Contracts and other useful documents).

    # Tuesday, April 28, 2009

    Fix missing JavaScript file when you rename the Umbraco admin directory

    Tuesday, April 28, 2009 6:49:48 PM (GMT Daylight Time, UTC+01:00)

    The Error

    For those of you who have tried to rename your Umbraco installation directory to something other than the default /umbraco/ you'll have found that TreeInit.aspx throws a JavaScript error along the lines of:

    Message: Object expected
    Line: 1
    Char: 4236
    Code: 0
    URI: http://www.yourdomain.co.uk/youradmindirector/js/xloadtree.js

    As this only really affects the refresh of the tree/close of a couple of dialogues I've not bothered fixing it but basically the issue is outlined well here: http://tinyurl.com/cx9atv

    The Fix

    If you're using extension less URLs already then it's easy as pie to sort:

    1. Open your UrlRewriting config file (/config/UrlRewriting.config)
    2. Add this above "</rewrites>":
    <...>
    <add name="missingjs" 
        virtualUrl="^~/## YOUR ADMIN DIRECTORY GOES HERE ##_client/ui/(.*).js" 
        rewriteUrlParameter="ExcludeFromClientQueryString" 
        destinationUrl="~/umbraco_client/ui/$1.js" 
        ignoreCase="true" />

    If you've not already using extension less URLs don't panic, that's easy to setup you can read all about it here. Alternatively you could just copy the js files from one folder to another ;)

    The Why

    I don't know how many people already rename their admin dir from something else but as Umbraco becomes a more popular choice of CMS you really should consider hiding the folder (the more popular it becomes, the more people will become more familiar with the default admin directory of /umbraco/).

    Although there hasn't yet been a breach (AFAIAA) if a vulnerability is found, the first step in prevention is obfuscation -hide your admin directory! A quick Google search will show you how easy some developers have made it for you to find their admin sites.

    # Friday, April 17, 2009

    Quick ASP.Net tip: Half your page size in ASP.Net instantly

    Friday, April 17, 2009 3:53:05 PM (GMT Daylight Time, UTC+01:00)

    Ok it might be a little less than half side but it's near enough. I've been sitting on this for a while and needed to reference it for someone so I thought I'd post quickly about it. One of the most common complaints about .Net is that you have a lot of hidden "content" by the way of hidden inputs and the likes throughout your site. This can easily get corrupt on postback/slowdown the page load times etc.

    Really you should be optimising each control on the page (enabling/disabling where relevant) but if you want to cheat (lets face it, we all do):

    1. Download the files: PageStateAdapterv1.0.zip (3KB)
    2. Put PageStateAdapter.browser into your /App_Browsers/ folder (or create one and add it)
    3. Put TSDPageStateAdapter.dll into your website's /bin/ folder
    4. Load up your website and checkout your ViewState :)

    Incase you're interested in the source for it:

    PageStateAdapter.browser

    <browsers>
        <browser refID="Default">
            <controlAdapters>
                <adapter controlType="System.Web.UI.Page" adapterType="TheSiteDoctor.PageStateAdapter.PageStateAdapter" />
            </controlAdapters>
            <capabilities>
                <capability name="requiresControlStateInSession" value="true" />
            </capabilities>
        </browser>
    </browsers>

    PageStateAdapter.cs

    using System.Web.UI;

    namespace TheSiteDoctor.PageStateAdapter
    {
        public class PageStateAdapter : System.Web.UI.Adapters.PageAdapter
        {
            public override PageStatePersister GetStatePersister()
            {
                return new SessionPageStatePersister(this.Page);
            }
        }
    }

    The best example of how much this reduces ViewState by is when you add a large DataGrid to your site.

    Post files: PageStateAdapterv1.0.zip (3KB)

    Update: Apologies to those of you who downloaded and found it wouldn't compile, the .browser file was a little off (missing the second "PageStateAdapter"). I've updated it and changed the zip file download. Enjoy!

    # Monday, March 02, 2009

    Visual Studio Tip of the day: Open files/folders in Windows Explorer

    Monday, March 02, 2009 11:09:25 AM (GMT Standard Time, UTC+00:00)

    A little irritation/time consuming process when you're working with multiple projects on multiple drives/SVN repos/directories is to open the current file's location within Windows Explorer. If you weren't already aware, you can do this from most projects/files by right clicking on the project in the solution browser:

    Problem for me (and my mate Chris) is that not only is it just for the Project Item but more importantly it means using the mouse -which is something I'm trying to avoid as much as possible. Then I stumbled across a couple of posts which suggested opening Windows Explorer with Visual Studio's External Tools dialog.

    They're both great ideas but you still need to use the mouse so I thought I'd take the final step and wire up some keyboard shortcuts. I'll recap the process here as I've added/grouped a few of their settings.

    Creating the "External Tools"

    There's a little productivity tip here for setting the folder in question the root of Windows Explorer, this encourages you to focus on just the work in question (though it can be a little irritating sometimes so I may "undo" this change later.

    Custom #1: Open the current solution item in Windows Explorer

    Title: Windows Explorer - Item
    Command: explorer.exe
    Arguments: /select,"$(ItemPath)"

    Custom #2: Open the current Visual Studio project in Windows Explorer

    Title: Windows Explorer - Project Directory
    Command: explorer.exe
    Arguments: /root,"$(ProjectDir)"

    Custom #3: Open the current Visual Studio solution in Windows Explorer

    We've got a number of projects that have useful files/folders stored in the same folder as the solution file so this one's useful to get quick access to them, I think I'll use this one a lot when dealing with SVN.

    Title: Windows Explorer - Solution Directory
    Command: explorer.exe
    Arguments: /root,"$(SolutionDir)"

    Custom #4: Open the current solution's binary (bin) directory in Windows Explorer

    Useful when you want to get access to the dll i.e. to copy to another folder/upload just the dll to a website.

    Title: Windows Explorer - Binary Directory
    Command: explorer.exe
    Arguments: "$(TargetDir)"

    Custom #5: Open the current solution's target build directory in Windows Explorer

    This is useful when you have a project that builds to another directory (i.e. a common DLL directory, I'm not sure how many people do this but I've got a couple of projects that do this so I thought I'd share it).

    Title: Windows Explorer - Target Directory
    Command: explorer.exe
    Arguments: "$(BinDir)"

    In all instances you can leave the Initial Directory field empty.

    Note: On a couple of the directory related commands I've set the "/root" argument, this is a useful little productivity tip I learn a while ago to stop you navigating away from your work. Irritatingly I've not found a way of using the /select and /root commands together. It would also be nice to say "Open the bin folder and set the root to the project folder" but again I've not found a way.

    If you're interested in the arguments I'm using there, check out the Microsoft Support article about How To Customize the Windows Explorer Views in Windows XP (these also work in Vista). Alternatively you can read more about the Visual Studio macros for build commands here (some of which are global I believe). I'm interested to see the use of $(TargetDir) as although it'll be useful for non-web projects, however using Web Deployment Projects might make it irrelevant for you.

    You should now have 5 new items in your Tools' toolbar:

    Wire up the keyboard shortcuts

    As mentioned earlier, I want keyboard shortcuts but if you want toolbar icons, you should checkout the end of this post.

    Open up the Keyboard settings within the Visual Studio Option dialog (Tools -> Options -> Environment -> Keyboard) -you may need to select the "Show all settings" checkbox in the bottom left of the Options dialog to see the Keyboard option.

    In the Show commands containing field enter "Tools.ExternalCommand" to list the set of commands, irritatingly it just labels each command as "Tools.ExternalCommand#" for each command so this bit will require a little thinking on your behalf. My commands are #2-6 (#1 is the Dotfuscator Community Edition command).

    I would then wire up the following shortcuts (I've set them up Globally for convenience):

    Tools.ExternalCommand2 (Current Item): Ctrl+E, I
    Tools.ExternalCommand3 (Current Project): Ctrl+E, P
    Tools.ExternalCommand4 (Current Solution): Ctrl+E, S
    Tools.ExternalCommand5 (Bin dir): Ctrl+E, B
    Tools.ExternalCommand6 (Target dir): Ctrl+E, T

    To enter these shortcuts simply press the first combination (in this case Ctrl+E), then press the second key (I -item, P -project, S -solution, B -binary, T -target). I found that a couple of these were already wired up to ReSharper and Pex which is a pain but I don't tend to use those particular shortcuts so I just overrode them

    Now you should be able to press Ctrl+E followed by I and get your current item in Explorer.

    It'd be nice if I could get it to use a single instance of Explorer and just refocus the items (on another key combo as that's not always the desired action).

    Update: After using it a little, I've noticed that in my projects, I had the Bin/TargetDir the wrong way around (now corrected).
    # Monday, February 09, 2009

    Can Twitter be a bad thing for your business?

    Monday, February 09, 2009 10:26:45 PM (GMT Standard Time, UTC+00:00)

    There's going to be a series of articles shortly that go into my attempts of using social networking to build your business but I thought I'd get this one out into the blogosphere first.

    What with the recent onslaught of "celebrities" onto Twitter such as Stephen Fry (who incidentally p'd a lot of people off the other day while over-posting), Chris Moyles and David Allen to mention a few, it got me thinking whether Twitter can actually be a negative thing for you and/or your business. I'm not referring to the tremendous time you lose reading and responding to the numerous posts (Tweets) but more about the transparency issues you'll run into.

    Those of you who know me in person know that I don't tend to bite my tongue (not always a good thing I can tell you!) and instead tend to speak openly and honestly regardless of the situation, so for me I don't really worry about what I Tweet, IM, e-mail or SMS as it's usually saying the same thing (unless I'm tired and losing my mind!). I have however noticed that's not true for everyone.

    For me, Twitter, MSN and these other social-status update services such as Facebook bring a whole new layer of complexity to those who want to "skive" -who hasn't seen the notorious Kyle Doyle email. It's not so much full on lies like Kyle's that I'm referring to but more the little ones like saying you couldn't complete some work because of xyz and then having posted a message on Twitter along the lines of "sod this I'm off to the pub". When your employer (or even friend) see's that, if it doesn't immediately annoy them, it will certainly plant the seed of doubt in their mind.

    I've been seeing this "phenomenon" for a while, it started with MSN status updates, then Facebook and now the worst of them all -Twitter. For goodness sake, just be honest, if you lie these days you're so much more likely to be caught out and that really can ruin your reputation -or at least lose you business.

    # Tuesday, January 27, 2009

    Answer machine messages

    Tuesday, January 27, 2009 6:19:22 PM (GMT Standard Time, UTC+00:00)

    Listening to Stacey update our answer machine messages today and Darren Ferguson posting on Twitter asking how to write project synopsis' got me thinking about KISS and that people knew what an answer machine was there for now and they didn't need a load of drivel about the fact that we're not here, leave a message, that we'll get back to them as soon as possible, they're just waiting for the beep (a lot of the time these days the provider then explains what to do to re-record your message etc -incidentally, have you ever used that? I've not) so why get in their way.

    Although it's not something we've done yet, I'm thinking of changing the company message to something like "You've got through to The Site Doctor, we're not in, leave us a message or email" and that's it. Short, sweet and simple. I'm tempted to go as far as "The Site Doctor is closed, here's the beep" but that might be too blunt.

    Why should they differ? People know what they're there for, get them straight to the point and don't fluff around it. BTW if you're interested to know what I think makes a good portfolio write up, again KISS and say as much as possible while writing as little as possible -the client doesn't generally care what technology you're using (9/10 they'll say they want PHP when they meant ASP.Net FWIW) as that's generally gobeldygook to them anyway.

    It's also important to keep it as short as possible (unless you're not aiming at them reading it i.e. SEO). The readers not interested in how much trouble you went to, just make sure the following is mentioned (if it's true)!

    • How they found you, this can be subtly  e.g. "Acme Corp contacted The Site Doctor to." or "Acme Corp was referred to The Site Doctor" -says all it needs no?
    • Overview what the general spec was e.g. "We were commissioned to do ABC"
    • Overview any successes that you had e.g. "We achieved everything Acme Corp asked of us within the timescales and budgets outlined"
    • Without getting too techy, overview how it works and what they can do with it
    • Use your company name once or twice but not every time, it's not necessary

    As I said, our portfolio doesn't always follow this at the moment but we're working on it. A better example is our paper brochure where we only had 50-100 words per project.

    Answer machine messages
    Useful Links:  #  digg it!  del.icio.us  Technorati  email it!  Post CommentsComments [0]  Trackback LinkTrackback
    CategoriesTags: Business | The Site Doctor
    # Sunday, January 25, 2009

    New Years Resolutions and Getting rid of deadwood

    Sunday, January 25, 2009 1:37:01 PM (GMT Standard Time, UTC+00:00)

    Log in the sandHave you made any New Year's resolutions this year? -That's a question I'm sure you've been asked a dozen times already this year. New Year's resolutions have always amused me, the thought that people wait around for months to make (often) big changes in their life has baffled me.

    If you run a business you'll know that it's important to review, assess and action a huge number of factors pretty much on a daily basis, if you don't, your business is likely to be slow to react to changes within your market place and so struggle.

    I think its human nature to have a point to focus on whether it's the beginning of a new year, a holiday, even the recession but why wait until the end of the week? Or even better when you identify a problem? Surely that would be better?

    That said the New Year and the recession are giving companies (including The Site Doctor) the perfect opportunity to clean out the deadwood within their businesses and reassess everyone's roles.

    What do you do? Do you review weekly, monthly or annually? At The Site Doctor we have weekly meetings to review the previous week's successes, failures, evaluate next week's goals and more importantly to identify areas that require attention. This doesn't need to take long but it allows you to react quickly to emerging issues and limit the impact it could have.

    If you're being hit by the recession (my sympathies go out to you if they are affecting your business) then you should be asking yourself "If I had reviewed our current position sooner, would I have been able to spot any warning signs?". I rather suspect if you are on top of your business you would have been able to.

    If I were you, I'd look to make my New Year's resolution this year to not need one next year because you action the issues as soon as they arise.

    # Wednesday, January 21, 2009

    Umbraco tip of the day –sort your document types

    Wednesday, January 21, 2009 7:59:39 PM (GMT Standard Time, UTC+00:00)

    I thought I'd share this as it's something I've been thinking about trying for a while. Umbraco is great but sometimes you want the default document selected when creating a page to be one that isn't the alphabetically first one.

    To work around this I tend to prefix the important Umbraco document types with a symbol (or you could use 1. etc I guess) but if instead you use a space (" ") before the name of your document type, Umbraco will place it at the top of the list for you.

    The nice thing to note here is that they obviously trim the name first so it just appears as "Text Page" rather than " Text Page".

    I found this out on our latest site which is just about to go live: www.nhshistopathology.net -check it out and let me know what you think.

    Enjoy!

    # Sunday, December 28, 2008

    New Google Feature

    Sunday, December 28, 2008 5:59:09 PM (GMT Standard Time, UTC+00:00)

    I've been sitting on this for a few weeks now -mainly due to my own laziness but I thought I'd finally pad it out a little. It would appear that Google have release a new method of ranking your own results for certain terms:

    Once you've promoted a page you'll notice a little green arrow to the right of the title link and the results will come back in this order every time you search on that term while you're logged in.

    At the moment I think it's just stored against your profile but I would imagine at some point in the future they'll start monitoring what everyone else is promoting and adjusting their results accordingly.

    What I'm interested to know about is how it affects SEO, I can't imagine they'll add too much preference to the promotions otherwise we could be in for another Google Bomb situation where your competitors promote or demote your site.

    New Google Feature
    Useful Links:  #  digg it!  del.icio.us  Technorati  email it!  Post CommentsComments [2]  Trackback LinkTrackback
    CategoriesTags: Business | Internet | The Site Doctor
    # Friday, December 12, 2008

    Settling with “It’ll do”

    Friday, December 12, 2008 11:55:48 AM (GMT Standard Time, UTC+00:00)

    Do you really want what you do to be classed as "it'll do"? At the moment it would appear that a lot of businesses are happy to say "It'll do" rather than put that extra mile to "It's excellent".

    We've been avoiding "it'll do" like the plague for over a year now and although it's not always easy is so much more rewarding and produces a much better end product. I don't think this applies just to work you produce, what about a job advert or your working environment?

    We've just started looking for new offices and staff, in both cases and we wanted more than "just another job" or "it's just another office", I want people to love working with and at The Site Doctor so we've been working hard to make it a reality. Finding THE office in THE location doesn't cost that much more (perhaps another month looking and a few extra quid) and making our positions that little bit more enjoyable won't really cost a lot more but will make our employees enjoy working with us and ultimately more loyal.

    Does it really cost you more? I don't think so no. Getting a really special office will make you feel happier at work, feeling happier at works means you're more creative, being more creative generally results in being more productive. Feeling appreciated and enjoying your role will also increase the likelihood you'll want to rock up at work each day and do more while you're there so in both cases, going the extra mile will pay off.

    What about marketing campaigns? Well it's the same thing, who talks about an "OK" viral advert? What buzz surrounds something "that'll do" in contrast to one that really goes the extra mile like the advert from Nike a while ago? I wonder how much more it cost to produce that against how much it cost to produce one of the awful run-of-the-mill TV adverts that are around at the moment?

    Ask yourself, do you really want to settle with "it'll do"?

    Settling with “It’ll do”
    Useful Links:  #  digg it!  del.icio.us  Technorati  email it!  Post CommentsComments [0]  Trackback LinkTrackback
    CategoriesTags: Business | Client | The Site Doctor
    # Monday, December 01, 2008

    Microsoft Office Accounting Professional crashes with custom invoice

    Monday, December 01, 2008 1:53:59 PM (GMT Standard Time, UTC+00:00)

    We've had an irritating issue recently with our accounting system, when creating the custom invoices.

    Basically, every time we tried to create a custom invoice with Microsoft Office Accounting the entire application would crash for no obvious reason.

    Checking the exception's stack trace it would talk about get_item which lead me down one path but the answer was actually (and irritatingly) more simple than that -we had a couple of merged cells in the footer of the totals table. Silly I know but it made all the difference!

    So if you're getting a crash with Microsoft Office Accounting when creating your invoices, check for merged cells first!

    # Tuesday, November 25, 2008

    What’s Google missing this time?

    Tuesday, November 25, 2008 2:22:34 PM (GMT Standard Time, UTC+00:00)

    I guess it's something to do with fair competition etc but I found this rather interesting when adding a client to Google's Business Listing the other day.

    Can anyone else spot a missing payment option?

    GoogleLocalBusinessCenterPaymentOptions.png

    How about "Google Checkout"?

    # Friday, November 07, 2008

    A new email domain scam to watch out for

    Friday, November 07, 2008 1:48:20 PM (GMT Standard Time, UTC+00:00)

    This came through to one of our clients today, I thought I'd share it as I've not seen it before and it made me chuckle. Note the placeholder: <Online since>

    Thought you might like to share it with your clients :)

    # Saturday, November 01, 2008

    WSDL returning a valid response but object is null

    Saturday, November 01, 2008 6:28:49 PM (GMT Standard Time, UTC+00:00)

    We had an interesting problem the other day while integrating with a web service hosted on an apache server. Every time we called the WSDL methods we could see a valid request being sent and a valid response being returned (ok there were a few syntax errors but nothing that would stop it converting) but despite this every time, without fail, it would return null at code level.

    The solution was actually amazingly simple. In short, since our last flurry with web services we've upgraded to Visual Studio 2008 and installed ReSharper (see below for how that's relevant). In VS2008 they've sneakily added a new menu "Add Service Reference" and although it's in the same menu location and a similar wording etc does something different. If you add your WSDL reference this way it will more than likely fail.

    To add a "Web Reference" in Visual Studio 2008 follow the instructions below and hopefully you won't go down the same routes that I did trying to debug the XML...

    Click the "Add Service Reference" menu option (obviously!)

    The screen below should appear, instead of entering the address of the web service into the address bar, click the advanced button at the bottom (highlighted)

    That'll then bring up the screen below, on which you need to click the "Add Web Reference" button at the bottom.

    You should then be presented with the usual "Add Web Reference" screen (see below).

    Why did I mention ReSharper? Well I've notice that as well as adding to the IDE they've also updated some of the menu items, most noticeably "Go to Definition" which is now "go to Declaration" (see below) so I figured this new menu option was thanks to them.

    ReSharper:

    Without ReSharper: VS2008GoToDeclarationWithoutResharper.png

    So the next time your WSDL is returning a null object even though a valid response is being retrieved, check how you added it in Visual Studio,.

    # Friday, October 03, 2008

    Keeping people happy

    Friday, October 03, 2008 12:45:48 PM (GMT Daylight Time, UTC+01:00)

    Sometimes it's the little things that keep workers happy so when I saw the little surprise that online conference callers Powwownow do with their cards I thought I'd share.

    When you sign up at www.powwownow.co.uk you get the option of being sent your number on a card to hand around to your friends, clients and anyone else. It comes through the post in a little card holder (mine was missing our spare cards but hey). If you rip it open, on some of the folds, they've put jokes for the people putting them together! Look:

    Powwownow Mailer Jokes

    Just like the jokes on lollipop sticks -costs next to nothing (in this case I would imagine it was free) but makes that works day just a little more entertaining :).

    Keeping people happy
    Useful Links:  #  digg it!  del.icio.us  Technorati  email it!  Post CommentsComments [1]  Trackback LinkTrackback
    CategoriesTags: Business | Fun and Games | Random | The Site Doctor
    # Thursday, September 25, 2008

    Knowing what to say in meetings -Part 1

    Thursday, September 25, 2008 9:34:48 AM (GMT Daylight Time, UTC+01:00)

    It's important when going into any meeting with a client that you prepare (everyone know's the old motto "Failing to prepare is preparing to fail") but how can you do that? First of all, consider what sort of meeting it is, find out who's going to the meeting and why they're there. Once you have this information you're good to go.

    The first client meeting

    Although you may be a little nervous at the first couple of meetings, this is perfectly normal, just remember that they've asked you there so they're interested in what you have to say -after all, you're the expert!

    It's very likely that they client will want to know more information about your company (not you!) so having a short synopsis of your company that can act as a base is very important. For instance, The Site Doctor has something along the lines of:

    The Site Doctor specialises in creating bespoke web based applications centred on your business requirements. We work with some of the world's largest and most successful organisations in both the public and private sectors as well as a wide selection of SME's.

    By combining specialist technology skills, with excellence in design, usability, accessibility and a unique business management process, we are able to deliver results-driven solutions including websites, intranets, Content Management Systems, enterprise portals, business applications and extranets.

    As well as developing major applications, our skills in marketing and communications ensures that we deliver a consistent message across a number of interactive communication channels and also integrate your objectives within an off-line environment.

    Since establishing The Site Doctor, we have encouraged all those involved to participate in the relevant online communities to not only improve their own knowledge and expertise but also give something back and help further other's careers.

    To be fair, this monolog changes depending on who we're meeting and the general feeling of the meeting, for instance if you're addressing a panel then we might leave off the SME part and replace it with a list of your clients as they're more likely to be interested in your larger work.

    Whatever your monolog is, it should be short and concise (I can digress somewhat sometimes when introducing The Site Doctor), make sure it's no longer than 2 minutes as if they want to know more, they'll ask.

    Make sure you've prepared a short list of questions for the client either about themselves or the project they have in mind, some of these you might already have answers to so prepare questions on the responses. Here are a couple of standard ones:

    • What are you looking to achieve with this project -do you have any goals/objectives already defined such as number of visitors, % increase in sales etc?
    • Similar to above, a good question is "What would make you consider this project a success?" -then link it to their targets above
    • Do you have any literature, designs or mood boards that would help with this project already prepared?
    • What are your timescale's for this project?
    • Are there any events or meetings that you would like to have this project completed in time for (99/100 there's a trade show coming up that they forgot to tell you about without being prompted
    • Have you thought about a budget for this work? (They'll most likely say no, you tell us what it'll cost and we'll decide -there's a way around that which I'll blog about later)

    If you manage to get this information (and any other relevant information) you're off to a good start with your project! Don't fret too much though if you can't get all the information or you don't manage to get the budget from the client the first time around, there are ways around it.

    The most important thing about the first client meeting is that both parties feel at ease with one and other as this will form a good base to build the project on. If you're liked by the client they're more likely to do business with you -especially if they have to pitch you to their superiors.

    My next post will blog about the project meetings and client feedback/sign-off meetings. At some point I'll blog about my successful networking tips and how to get a budget out of a client but that's enough for today!

    What do you say when in your first meeting? Do you have any tips for what to say in meetings? Leave me a comment, I'd love to hear your thoughts.

    # Wednesday, September 03, 2008

    Clean out unused media items from Umbraco media folder

    Wednesday, September 03, 2008 5:15:14 PM (GMT Daylight Time, UTC+01:00)

    When uploading some new media items for a client today we noticed that if you selected "Remove" before saving, it doesn't actually remove the file from the FileSystem. Having a quick look around the forums I saw there are a few posts already pointing this out so I thought I'd fix it.

    This is a little application that simply checks the media items in the database and then compares it against a folder you select on your machine. If the file is in use according to the database then it's ignored otherwise it will remove it.

    To use:

    1. Enter your server's login details
    2. Click "Test Connection"
    3. Select the relevant database from the drop down
    4. Check the "Media Folder Name" matches your Umbraco's installation
    5. Locate your Media Folder on your computer
    6. Click "Check Media Folder" -this will then list all the orphan files
    7. If it looks right, click "Delete" -with caution
    8. Job done

    There are a few checks in place to avoid mishap but it's not 100% foolproof as I needed something rough and ready to sort a couple of installations out. If this is something that's seen as useful I'll extend it a touch, some ideas I've got already:

    • Check that the selected media folder matches that of the database
    • Check that the media id's are the same (to avoid wiping another installation)
    • Save config settings for easy re-use
    • Use webservices rather than a direct connection to the database
    • Enable FTP useage

    Please note: I accept no responsibility if anything was to go horribly wrong with this. I would backup your folder first just in case!

    You can download the MediaFolderCleaner application here

    # Thursday, August 28, 2008

    Do you yell dot com?

    Thursday, August 28, 2008 7:53:13 PM (GMT Daylight Time, UTC+01:00)

    We've recently (and somewhat oddly) had a lot of dealings with Yellow Pages. In the past when asked, I've suggested people shouldn't bother with paying to be listed within the Yellow Pages -especially if you're an IT related company. This was purely based on my experience of stupid numbers of callers wanting an e-commerce site for £50 and the fact that I've believed for a long time that it's quickly losing any useful market share thanks to the likes of Google, Yahoo! and MSN. Now however I've got several reasons not to.

    A little history/background for those of you who aren't aware who, or what Yellow Pages is

    Yellow Pages has for a long time been the place to find the telephone number of a local company. It neatly organises everything from your local kebab shop to your nearest funeral parlor (not saying the two are linked!).

    Yellow Pages ran into a problem a few years ago that I don't think they ever really realised/addressed -this little thing that wouldn't catch on called the Internet. Although they launched a website somewhere around 2001 they were (IIRC) more interested in competing for the 118* directory service (btw how many variations are there? 35ish? -How many do you remember!). Then, by the time they started to realise the potential of the web over the premium rate call lines, they pricked their ears up.

    But instead of following suit on the web by opening their service up as widely as possible, they decided to dig their head into the sand and take the same course of action many large corporate do of "We're so big, we don't need you piddly client, you need us", and this leads me to believe Yellow Pages (and to a large extent) yell.com will soon be a thing of the past (thankfully some might say).

    So what's my gripe? What've they done to me?

    Nothing is the simplest response but that's also what they've done trying to satisfy a couple of our clients. I'll refer to two of these to argue my point, both SMEs, for arguments sake we'll call them Company A and Company B.

    Company A

    Company A spends approximately £5,000 advertising in Yellow Pages each year. This equates to about 20% of their turnover (a fair chunk of it!). Company A has also had a website for the past few years. Originally developed by Yellow Pages, but updated by us in 2003.

    Ever since the website was created, Company A claimed that the majority (est. 80%+) of their custom came from Yellow Pages so each year, when the Yellow Pages rep gave them a call happily invested yet more money.

    Recently though, Company A decided to redesign their website as their old one wasn't snazzy enough anymore. Despite fairly heavy traffic and our objections, the decision was made to turn off the existing website (rather than replacing it a temporary holding page) while the new site was being designed and developed. This was only going to take a month (it took a little less than this). But in this time, Company A found that his bookings for the next month or so were massively down on the same period last year. As soon as this was realised, a holding page was put online with a telephone number but it served to prove a point -Yellow Pages' share of the "record search" industry is depleting.

    I realise that it's not always as cut-and-dry as I've made it out to be here (mainly for simplicities sake) but the most of the traffic to the site originates from keyword searches on the service rather than the company name or direct traffic (suggesting that they're not looking at Yellow Pages and then coming to the site).

    Further to this shock, Yellow Pages originally registered the domain name for this client but despite having fully paid all his accounts, Yellow Pages are yet to release the domain name into our control (we've been chasing them since 2003). This is despite several promises (both verbally and written) that they would release the domain. Needless to say this was unnecessary aggravation over something quite minor.

    Thanks to the trouble caused over the domain (and apparent lack of interest from Yellow Pages -despite a huge spend) Company A is now looking at completely stopping their advertising with Yellow Pages.

    Company B

    Unlike Company A, Company B has historically had a much smaller spend. Usually opting for the smallest advert in a single directory because very little business has come from previous adverts. Company B is in a fairly competitive industry but features prominently.

    This year when the Yellow Pages sales rep came calling, they explained to Company B the reason they'd only seen a very small return on their investment was because they were advertising in very few of the Yellow Pages directories. To get more sales Company B should advertise in two other directories and pay for a premium listing which would ensure his company was always on the first page within his area. This sounded reasonable -and logical (advertise in more places, get more enquiries) and as Company B had had a few good months trading decided it was a good investment.

    For the first month or so Company B checked on their yell.com listing every few days, sure enough there they were on the first page. A couple of months on and several hundred pounds later however, something wasn't right. Where Company B had previously had 2-3 enquiries in the same period this year they'd had none. Company B asked us to look into their online position as far as Yellow Pages' yell.com was concerned and despite being promised a first page position on certain areas/phrases, they were rarely appearing inside the top 40 enhanced listings (there are currently 47 listings).

    Somewhat concerned Company B decided to monitor the situation and started to monitor their position regularly (and we did too). Between all the visits, they were lucky if their result showed up in the results for the areas they serviced -let alone the one they were based in! Having spent over 3 times what they did the previous year, Company B felt somewhat cheated by the sales person so decided to complain.

    The customer services rep was somewhat dismissive of Company B's claims and told him that he was appearing in the searches but despite this, they would have their sales team look into what he felt he was sold. The sales team phoned back and informed Company B that they'd only paid for an enhanced listing -which meant the advert wouldn't always be on the first page and there was no way the salesman would have said this as this would cost several thousand pounds. Company B however remembers the salesman stating this so asks us to talk to them about not appearing in the results as when asked, the rep started "talking technical".

    When I called to discuss the account I was meet with a very pleasant lady "Sarah" who was the technical sales person who after spouting a little crap about web metrics explained the situation:

    After this she hung up (I kid you not). Ok the easiest way out of the conversation by Company B hit the roof when they heard.

    We're still awaiting an explanation but have mysteriously started to appear on the first page more often-than-not. Clearly they have some weighting system at play...

    So what's my point?

    I don't think I really have a point, I just felt like a rant but here are a couple of other reasons why I think Yellow Pages sucks and won't be around for much longer:

    Enquiry rates down

    I heard another advisor talking about some analysis he had been involved in with a local company. For the past few years they had been recording every enquiry to their firm and aggregating the statistics for comparison at the end of the financial year to decide on whether to advertise next year.

    These are the approximate number of enquiries per month:

    · 04/05: 110

    · 05/06: 80

    · 06/07: 40

    · 07/08: 32

    Their service is not seasonal and the competition has not changed dramatically over the years (certainly not enough to warrant the change seen here). Furthermore their turnover had been increasing. Oh, and the advert for comparisons sake was always the same.

    I'd love to get hold of some statistics on Yell.com and Yellow Pages enquiries in general to see if this matches the general trend. Google Trends suggests it's started to drop a little.

    Prices staying the same

    Despite massive competition online, Yellow Pages are still charging a fair whack for their service and have no intention of changing this. I think as soon as the smaller advertiser cottons on to the fact that they can run a pretty intense pay-per-click campaign for the same amount of cash and reach a larger audience Yellow Pages will be in some serious trouble.

    Non-recyclable

    Would you believe it? In this day and age, for some reason our recycling people won't take away your Yellow Pages? I tried putting it out a few times but each time they lifted it out and put it back in the box for me.

    I expect there's some logical reason for it but I know very few households now that keep the heavy directory so where do they all go? The tips? Disgraceful!

    That said, I think I do have a point. I think Yellow Pages is a very good example of a company that has disgraceful customer service. Taking the two (I have more) examples mentioned here I think the issues could have easily been rectified:

    Company A: Transfer the domain into the control of the client.

    Company B: Simply apologise for the misunderstanding (no-one said they were sorry for the misunderstanding, instead they just made out that Company B was stupid) and if needs be, offer some form of discounted service next year.

    I can only hope that Yellow Pages reads this and realises they're going to seriously P off their loyal customers in time to save themselves, but I don't think my blog is important enough for that to happen yet, sadly.

    If you're asking me in the future. Steer clear of Yellow Pages and talk to us about some Google AdWords advertising.

    # Friday, August 22, 2008

    The Site Doctor gets a saucy makeover

    Friday, August 22, 2008 2:55:26 PM (GMT Daylight Time, UTC+01:00)

    One of my friends in Denmark has been working on something quite special over the past few days and I thought it was time to share. I'm really blown away by the "quick job" he did with this.

    And one for the fellas

    # Friday, August 01, 2008

    Is buying online better than in the store?

    Friday, August 01, 2008 11:00:22 PM (GMT Daylight Time, UTC+01:00)

    I've been an advocate of buying goods online for quite some time now but have been astounded at the level of service received recently that leads me to believe that buying online is slowly removing the benefits of buying in a store.

    A little background: My camera broke (again) the other day. I've returned this model to Amazon before and wasn't aware that if the item has a problem again, they don't replace it, they just refund the cost. An interesting policy -especially as my problems were not related, but a nice surprise.

    As I packaged up my old camera to return (a very painless process I might add) I got looking around for a replacement. Checking out the online reviews, I found my 3 favourites to pottered off to Jessops to check them out. The lady at Jessops was very helpful, pretty much confirming everything I had read online. So it came to deal time, I don't mind paying a little extra in store to get the item the same day and to do a little bartering.

    Today was not to be my day though, it turns out the only one left in stock was the show model, normally a good way of getting some extra money off but not this time, it wasn't for sale. Bare in mind this was Saturday, the fastest they could get me the model I want (a mainstream camera not overly in demand) was Wednesday! So off I went home and bought it online on the Sunday. It arrived Tuesday at 9:15! What an exceptional service (thanks UK Digital Cameras).

    Then, on Monday evening (around 2100) I ordered my new number plates from Demon Plates expecting them to take a few days to be made and posted (so they should have arrived today) but instead, they arrived on Wednesday! Amazing.

    Don't get me wrong, I think stores have a place, its's still nice to pop into a shop and pick up the items you're interested in. There's definitely still something in feeling the item before you buy but service wise online stores are really starting to take over.

    All I can say is keep it up guys, you're doing the industry a great service! I hope our ecommerce website owners are as efficient.

    # Monday, July 28, 2008

    Is Google using Analytics data to crawl additional pages?

    Monday, July 28, 2008 2:19:41 PM (GMT Daylight Time, UTC+01:00)

    I've been wondering for a while how Google has managed to find a couple of hidden pages. Although they were securely locked down we noticed a few rejected GoogleBot requests in the audit logs. We put this down to the users having a Google toolbar installed but today we got an error from the new Avant Garde hair salons site that's just gone into beta testing which got me thinking.

    This particular link is hidden behind a form post and within a jQuery call (to track an action) so not something the GoogleBot has easy access to. I know they're getting more clever but not *that* clever! We started getting the errors shortly after adding the final Google Analytics code so the only conclusion I can come to is that they're not just registering the URLs for reporting purposes but they're also using them to crawl additional pages.

    Does anyone know if they use the URLs tracked in Google Analytics to find new pages? All I can say is if this is the case, you better make sure your "secure" pages check the access permissions on a page level!

    # Friday, July 25, 2008

    Identify IIS Sites and Log File locations for WWW and FTP –the source

    Friday, July 25, 2008 3:52:37 PM (GMT Daylight Time, UTC+01:00)

    Exactly a year ago today I posted a little application that output the sites in IIS to a text file and as a few days ago Lars asked for the source, I thought it would be a nice thing to release it exactly a year later.

    I didn't plan it that way, it just happened! Cool :)

    Identify IIS Sites and Log File locations for WWW and FTP source

    using System;
    using System.DirectoryServices;
    using System.IO;
    using System.Collections;

    namespace IISSites
    {
        class Program
        {
            static string fileToWrite = String.Empty;

            [STAThread]
            static void Main(string[] args)
            {
                fileToWrite = String.Format("IISExport{0:dd-MM-yyyy}.txt", DateTime.Today);
                if (args != null && args.Length > 0)
                {
                    fileToWrite = args[0];
                }

                SortedList www = new SortedList();
                SortedList ftp = new SortedList();
                try
                {
                    const string FtpServerSchema = "IIsFtpServer"; // Case Sensitive
                    const string WebServerSchema = "IIsWebServer"; // Case Sensitive
                    string ServerName = "LocalHost";
                    DirectoryEntry W3SVC = new DirectoryEntry("IIS://" + ServerName + "/w3svc", "Domain/UserCode", "Password");

                    foreach (DirectoryEntry Site in W3SVC.Children)
                    {
                        if (Site.SchemaClassName == WebServerSchema)
                        {
                            string LogFilePath = System.IO.Path.Combine(
                                Site.Properties["LogFileDirectory"].Value.ToString(),
                                "W3SVC" + Site.Name);
                            www.Add(Site.Properties["ServerComment"].Value.ToString(), LogFilePath);
                        }
                    }

                    DirectoryEntry MSFTPSVC = new DirectoryEntry("IIS://" + ServerName + "/msftpsvc");
                    foreach (DirectoryEntry Site in MSFTPSVC.Children)
                    {
                        if (Site.SchemaClassName == FtpServerSchema)
                        {
                            string LogFilePath = System.IO.Path.Combine(
                                Site.Properties["LogFileDirectory"].Value.ToString(),
                                "MSFTPSVC" + Site.Name);
                            ftp.Add(Site.Properties["ServerComment"].Value.ToString(), LogFilePath);
                        }
                    }
                    int MaxWidth = 0;
                    foreach (string Site in www.Keys)
                    {
                        if (Site.Length > MaxWidth)
                            MaxWidth = Site.Length;
                    }
                    foreach (string Site in ftp.Keys)
                    {
                        if (Site.Length > MaxWidth)
                            MaxWidth = Site.Length;
                    }
                    OutputIt("Site Description".PadRight(MaxWidth) + "  Log File Directory");
                    OutputIt("".PadRight(79, '='));
                    OutputIt(String.Empty);
                    OutputIt("WWW Sites");
                    OutputIt("=========");
                    foreach (string Site in www.Keys)
                    {
                        string output = Site.PadRight(MaxWidth) + "  " + www[Site];
                        Console.WriteLine(output);
                        OutputIt(output);
                    }
                    if (ftp.Keys.Count > 0)
                    {
                        OutputIt(String.Empty);
                        OutputIt("FTP Sites");
                        OutputIt("=========");
                        foreach (string Site in ftp.Keys)
                        {
                            string output = Site.PadRight(MaxWidth) + "  " + ftp[Site];
                            OutputIt(output);
                        }
                    }
                }
                // Catch any errors
                catch (Exception e)
                {
                    Console.WriteLine("Error: " + e.ToString());
                }
                finally
                {
                    Console.WriteLine();
                    Console.WriteLine("Press enter to close/exit...");
                    //Console.Read();
                }
            }

            static void OutputIt(string lineToAdd)
            {
                Console.WriteLine(lineToAdd);

                if (!String.IsNullOrEmpty(fileToWrite))
                {
                    StreamWriter SW;
                    SW = File.AppendText(fileToWrite);
                    SW.WriteLine(lineToAdd);
                    SW.Close();
                }
                else
                {
                    Console.WriteLine("locationToOutput is Null or String.Empty please supply a value and try again.");
                }
            }
        }
    }
    # Saturday, July 05, 2008

    Deleting SVN directories with PowerShell

    Saturday, July 05, 2008 4:25:32 PM (GMT Daylight Time, UTC+01:00)

    I've been re-working our new SVN structures recently as I'm now starting to understand how it works but one of the issues I had was trying to move the files/folders from a previous SVN directory.

    PowerShell is great if you understand it (which I'm also learning) so I thought I would share this little script with you. It just loops through the files/folders and removes all those named _svn. I found this script from Wyatt Lyon Preul and he complained about the length of the script, but from what I can tell you can condense that down to:

    gci $folder -fil '_svn' -r -fo | ? {$_.psIsContainer} | ri -fo -r

    I'm not that great with PowerShell yet but I hope that helps someone :)

    WARNING: As ever, incase I'm wrong (it happens!) test that on a folder first that you don't worry about losing!
    # Thursday, July 03, 2008

    Market rates –can I have the same hourly rate for all clients?

    Thursday, July 03, 2008 8:36:01 AM (GMT Daylight Time, UTC+01:00)

    This started out as a response to a comment and then I thought it might be better as a post in it's own right.

    In his comment David Conlisk said:

    First off Tim very well done on providing some excellent information on the site. I've just spent my first afternoon as my own boss reading your business start-up advice and it's been excellent (it's called research, not slacking off!)

    One question I would ask you about this post is what about market rates? I am going from being a contractor on an hourly rate to being a limited company. I never considered working out a base rate like you've done, instead I spoke to as many people as possible in the marketplace to gauge what the rates are and I price accordingly. Of course this works fine for more corporate clients, but I doubt I could charge smaller companies similar rates. Let's hope I can make a good enough impression on my corporate clients to keep that kind of work coming in!

    Keep up the good work,

    David

    Hi David,

    Thanks for your kind words, I'm glad to hear you found it of use.

    In regards market rates, it's one of the oldest debates in the book AFAIK and has a rather unhelpful answer of "You should charge what you feel comfortable charging". I'll try to improve on that a little as it's always hard but in essence it's true. Basically from experience I would keep it as simple as possible, have as few rates as possible for all clients, just make sure you feel you're worth the rate in your own mind.

    Although you need to keep an eye on the "market rates", you'll find your rate will determine the type of client you work with. Being the cheapest on the market is not necessarily a good thing. One advantage of offering a freelance service to other development companies is that we get to see what happens when your prices are rock bottom -take it from me, more often than not, it's more hassle than it's worth. When you have someone going el-cheapo all the way you often find they're overly picky about every aspect and require a lot more management time (that's not to say those paying higher rates aren't, I guess you just notice it more).

    As long as you're reasonable with your rates, clients who are willing to pay your rates, will use you (they may complain a little but it's unlikely) but at the end you'll both be happy with the work produced. As long as you believe in yourself -and your rates, this will be conveyed to your clients so if you know you're value for money you will be able to justify it to any client (corporate or otherwise). It's up to the client to decide whether you're value for money.

    Believe it or not the service industry is not the only industry to set it's fees and then get them negotiated on -Stacey used to work in Debenhams a few years ago, for those of you who don't know what Debenhams is, it's a large department store in the UK, they sell items for a set fee, everyone knows this but regardless of this she still had people trying to negotiate on the fee. Be open to negotiation but don't be silly about it otherwise the client may always expect a discount of that level (so stick to no more than a 10% variation).

    Don't worry about having clients not use you because of your rate, as long as you're around the market rate there will be a client for you. At the end of the day, you can't realistically expect to service every prospect that comes through your doors -sometimes you just have to say "sorry that's the price".

    I'm not saying charge £1,000ph when the market rate is £10ph as that's just silly but I would say your base rate shouldn't be cheaper than the market rate or more than 3 times the market rate (unless your service really is that good and you're bogged down with work [I did have a link for here about an ?SEO company charging $1,000ph and still being too busy but I can't find it atm], in which case go for it!).

    Tip: How do you find out market rates? That's simple, find a couple of companies who offer similar services, to a similar client base who are a similar size to you, call them up and just ask them what their daily rates are. Call 10 or so companies and you should have a few prices to compare :)

    Another tip: Always ask for an rough idea of their budget -even if it's just a range, this will give you a good idea of they're realistic or not.

    And one more: Don't forget your rates don't need to be fixed. If you find you're too busy, increase your rates a little, if you're too quiet (whereas everyone else is really busy) then you may need to look into how you market your business, your presentation skills and finally possibly reducing your rates.

    A word of warning: I would avoid dropping your rate "for the nice client" as the majority of times you'll end up regretting it, either because it gets out of control and you get frustrated because "you're doing them a favour" whereas they feel they just negotiated your service rates down (and so should be getting the same level of service. Remember, it's business, you don't need to do anyone a favour, charge what you feel is fair for your time and you'll always enjoy your work :)

    On the flip side of this, if you're lucky enough to get a large corporate, make sure your rate is their market rate as we've lost work for being too cheap (and in my eyes we were already overcharging for the workload).

    It's easy to be busy and cheap, but being a busy fool is no way to live!

    HTH

    Tim

    # Friday, June 27, 2008

    West Bromwich gallery The Public fails to deliver again

    Friday, June 27, 2008 10:47:35 AM (GMT Daylight Time, UTC+01:00)

    If you've had the chance to catch any of the UK news recently (or even glanced at a paper) you'll no-doubt have heard about the fantastic new art gallery that was due to open in West Bromwich last year this weekend -The Public.

    Unlike all the other articles about The Public (I ran out of words so here are a few more), I'm not interested in flaming the fact that they've placed a £32 million £52million (they went over budget) art gallery in one of the Midland's most deprived areas, or the fact that they're looking to charge around £7 for entry but instead the fact that they can't even get the simplest of things right -despite an astronomical budget.

    Despite having gone over budget, and delivering late, they couldn't even manage to get their website online. In this day and age with such fantastic and resilient hosting providers such as Rackspace, there really is no excuse for having your website offline.

    Fair enough, an "Under Construction" message could have been an amusing pun while The Public was being constructed but it has been constantly offline for the week before it's launched is simply unforgivable. Regardless of who developed it, I hope there were serious ramifications.

    Despite this massive cock-up, I'm looking forward to avoiding the £7 entrance fee and checking out the futuristic art gallery this weekend (free entry). I'll upload my photos to Flickr if I'm allowed to photograph in there, if not the guardian has a nice collection of images. At least I know there the female toilets are complete.

    Now I just need to find out when it opens.

    .shame the website is still offline ;)

    # Wednesday, June 25, 2008

    UK Umbraco meet has a map

    Wednesday, June 25, 2008 10:25:00 AM (GMT Daylight Time, UTC+01:00)

    As requested on the forum, we've got a map to try and work out where it should be placed, if you want to come along get yourself added: http://tinyurl.com/3oaf8x

    Instructions from Google:

    Adding and Editing Placemarks

    To add a placemark to your map:

    1. Create or open a map.
    2. Click Placemark button. Your cursor changes into a placemark icon with an "X" crosshairs. The crosshairs indicate where the placemark will fall.
      Placemark icon
    3. Move the cursor to the appropriate location. If you want to dismiss this placemark, press the Escape key.
    4. Click your mouse button to place your placemark. It should bounce into place.
    5. Add a title and description.
    6. You can also change the icon for your placemark by clicking the icon in the top right corner of the info window. You can also add your own icon.
    7. Click OK to save your placemark.
    To move or edit a placemark:
    1. Click Edit in the left panel.
    2. Drag and drop the appropriate placemark to the new location. Note that you can only edit or move placemarks on your maps, not others.
    3. To edit a placemark's title or description, click on it to open the info window. Edit the title and description and click OK.
    4. Click Done in the left panel when you are finished.
    # Saturday, June 21, 2008

    UK Umbraco meet up

    Saturday, June 21, 2008 12:17:58 AM (GMT Daylight Time, UTC+01:00)

    In a previous post about CodeGarden 08, I asked people to get in touch if they'd be interested in a UK Umbraco meet up. I've had a fair few people get in touch so I think it's something worthwhile pursuing further. The nest stage from my POV is working out the location and potential content of the meet so I thought I'd open it up to the floor.

    With the forthcoming DDD7, I thought it might be a ready-built platform that we could use but I agree with Phil that DDD7 may not be a suitable platform for a multitude of reasons.

    As I've had people from the South West and Scotland voice an interest, I don't think it'll suit the majority of people to have it based in London so suggest it is based in the Midlands -probably Birmingham as it's easy to get to (M6 from the North, M4 from London, M5 from the South -or train!) and there are plenty of places to have the meet.

    In regards the format/content of the meet, does anyone have any suggestions? We could follow Niels' and Per's open format or we can have a more structured theme? I've not had too much of a think as to subject matter but some I have come up with so far:

    • An introduction to Umbraco and what it is (many of the people I've spoken to have only just started using Umbraco)
    • Examples of Umbraco how Umbraco can be used
    • More advanced Umbraco functionality (membership etc)
    • Getting to grips with XSLT
    • How to sell Umbraco to your clients

    So that's where I've got to so far, does anyone have anything to add?

    BTW the logo is just a working logo atm, need to have Niels approve it ;)

    Update: I have posted a post on the Umbraco forums about a UK Umbraco meet here

    UK Umbraco meet up
    Useful Links:  #  digg it!  del.icio.us  Technorati  email it!  Post CommentsComments [4]  Trackback LinkTrackback
    CategoriesTags: Development | The Site Doctor | Umbraco | Web Development
    # Monday, June 16, 2008

    The Site Doctor gets yet more features –this time for tackling MRSA with our stressballs!

    Monday, June 16, 2008 11:39:28 PM (GMT Daylight Time, UTC+01:00)

    Since our recent feature on CSS Mania, we've had it pointed out to us that The Site Doctor is getting featured all over the place. The most recent two relate to our new brochure -more notably The Site Doctor branded stressballs which are apparently protect against MRSA.

    The first feature was in an industry magazine (PRW) check out a photo of the article here. The second feature was from EPPI (you can see it online at: http://www.my-catalog.at/37483_eppi62/ -Pg 76). Ok neither actually talk about The Site Doctor but at least our logo is getting out there!

    Thanks to Mark Bailey from the UK stressball manufacturer -Urofoam for letting me know about these two.

    If you've seen The Site Doctor mentioned somewhere leave me a comment, I'd love to hear!

    # Thursday, June 12, 2008

    The Site Doctor gets creative with print

    Thursday, June 12, 2008 9:59:50 PM (GMT Daylight Time, UTC+01:00)

    After months of  painstaking work I can FINALLY reveal what we've been beavering away on -our new brochure with a twist. If you're involved in marketing at all you're probably already aware how hard it is to print interactive designs. Regardless of that, we needed some way of advertising so we got our thinking caps on.

    The brief was simple: we needed to come up with a way of marketing our bespoke design and development services. Being a creative company we also wanted something that stood out from the other 1,001 West Midlands based web design companies. It should also reflect the attention to detail and quality that goes into our web design and development.

    Our target audience was to be high end management so the brochure had to be quick and easy to navigate, have clear calls to actions and require minimum effort to read (unlike my blog!!).

    As all "good" ideas* start with a pen, napkin and one too many coffees, we trotted off to our favourite Costa for a brain storming session and here's what we came up with:

    * not all good ideas do but some do but it's a good excuse for a coffee.

    We went through all sorts of ideas ranging from having themed TicTacs produced, to sending out branded bottles of wine, most of the ideas were dismissed because they had either already been done or would just be binned/eaten and forgotten. We needed something that stood out.

    For those of you who can't understand our scribbling's, we decided upon a brochure with a twist (or two).

    The First idea was to make the brochure quick and simple to navigate -like the websites we develop so we decided to go a little Avant Garde (off the wall/pushing the boundaries) and opted for a coloured tabbed navigation system, the idea was taken in part from an Argos catalogue which uses colours to separate the sections. I felt combining the tabs and colours would ensure the brochure was quick and easy to use.

    The next issue we addressed was how to get the reader to open the brochure, it sounds silly but getting someone to open the brochure (let alone reading it) is pretty hard to do so we decided to offer the reader an incentive and what was better than our new stressball? Why not put one on the front of the brochure?

    I've jumped a few stages in our thinking but here's the final product -a brochure with a stressball attached to the front, mimicking a pill packet (complete with foil on the inside to get the pill out), coloured tab page navigation and loads more.

    # Tuesday, June 10, 2008

    CodeGarden 08 -been there, done that, got the t-shirt!

    Tuesday, June 10, 2008 7:18:53 PM (GMT Daylight Time, UTC+01:00)

    So things have been manic here the past week, for those of you who didn't know, I popped over to Denmark at the last minute to attend Umbraco's CodeGarden 08. It was great fun and I have to thank Niels Hartvig and Per Ploug Hansen for putting on a great couple of days.

    You can check out my photos from the event on Flickr (bear with me, I'm just getting started with Flickr).

    I'm sure a fair few people have blogged about the highlights (if you're interested check www.umbraco.org) but the biggy was announcing the release of Umbraco v3.14.0 which is pretty exciting news as it has a ton of feature enhancements and UI improvements. Also, you'll be pleased to hear that they're making 2008 the year of Umbraco documentation!

    Another interesting points from the conference was the pending release of Umbraco.TV which will feature tutorial videos and insights from the core team on how to use Umbraco and the Umbraco store which allows you to easily distribute the packages you make :) All in all some interesting developments.

    There were also a fair few English developers at the conference so discussion inevitably turned to a UK meet (I know there are a fair few designers and developers here that couldn't justify the expense) so that's something that I'm going to look into setting up. If this is something you'd be interested in, leave a comment or drop me an email and we'll see how much interest there is.

    To all the rest of you -it was great to meet you, you're all a lovely bunch and I look forward to meeting you again at CodeGarden 09!

    The other thing I've finally clarified (this is for you Simon!) is the Umbraco licensing rules so if you're unsure on those, check out my post on when you need to purchase an Umbraco license (the answer is always -or never, it's up to you!).

    # Friday, May 30, 2008

    Can't launch Outlook when switching to Exchange from POP3

    Friday, May 30, 2008 9:14:36 PM (GMT Daylight Time, UTC+01:00)

    I've had an irritating issue for the past week or so. I used to use POP3 in Outlook however the other day I switched to the internal Exchange server and I got stuck in an eternal loop saying that Exchange needed to connect to the server to synchronise the offline files and folders -but you couldn't do that until the files were transferred.

    The message looked something like this:

    The set of folders cannot be opened. You must connect to Microsoft Exchange with the current profile before you can synchronise your folders with your offline folder file.

    Took me a while but the fix was to remove the profile and setup the exchange inbox first:

    1. Click Start, and then click Control Panel.
    2. Click Switch to Classic View, and then double-click Mail.
    3. In the Mail Setup dialog box, click Show Profiles.
    4. On the General tab, click Prompt for a profile to be used, and then click Add.
    5. In the Profile Name box, type a descriptive name for the new e-mail profile, and then click OK.
    6. In the E-mail Accounts dialog box, click Add a new e-mail account, and then click Next.
    7. Click the appropriate server type for your new e-mail account, and then click Next.
    8. Type your account information in the required boxes, and then click Next.
    9. Click Finish, and then click OK.
    # Friday, May 23, 2008

    The Site Doctor stressballs have arrived!

    Friday, May 23, 2008 3:24:53 PM (GMT Daylight Time, UTC+01:00)

    Exciting times as all our hard work is finally coming to fruition -our branded stressballs have arrived and they look AWESOME! I really couldn't have hoped for a better looking outcome if I had tried, they're unbelievably cool (that or I'm unbelievably sad!) but take a look for yourself and see what you think! (You'll have to excuse the photography)

    They were delivered in a massive box -I don't think I've seen so many pills before! All exciting...

    # Tuesday, May 20, 2008

    Taking the stress out of web design with The Site Doctor's new marketing "gimmick"

    Tuesday, May 20, 2008 7:08:54 AM (GMT Daylight Time, UTC+01:00)

    So the logo and new website was complete, next we needed a marketing gimmick and a way to promote our services. We already had an idea of how we were going to promote ourselves but we needed a way of making it stand out.

    We needed something that fitted with our new pill shaped logo but what? A label on some wine? Coloured TicTacs? Pens, Badges, Stickers...? They'd all been done before 101 times and we wanted to be different.

    After banging heads together for a while it struck me, the perfect "gimmick" to go with our new brand identity had been around for years -in fact I got the inspiration from my mum who was a GP in Plymouth for many years. As a kid, I remember when she came home after a medical convention with hundreds of freebies including pens, post-its and calculators, but the one that got me thinking was the stressballs. She used to get pill shaped stress balls... What could be more perfect I ask you?

    It sounds silly but getting a Red and White coloured stressball wasn't easy, I called around tens if not hundreds of suppliers, all of whom were able to supply us with Orange/White or Blue/White or All White stressballs but Red/White would take weeks to manufacture. The problem it turns out is that nearly all stressballs are made in China and there is only a single UK importer who all agents buy off. That combined with the Chinese new year made lead times grow exponentially.

    Thanks to the wonderful power of Google, we did manage to find a supplier (in the UK no less) that was able to custom print the stressballs so watch this space for the outcome!
    # Wednesday, May 14, 2008

    Native client cannot be found while installing SQL Server 64

    Wednesday, May 14, 2008 9:03:44 PM (GMT Daylight Time, UTC+01:00)

    We're having fun and games with the new internal dev server. We've got for Windows Server 2008 x64 for a laugh and today was a corker, while trying to install SQL Server 2005 x64 onto the box we repeatedly got an error along the lines of "native client cannot be found sqlncli_x64.msi".

    Searching around the install DVD/files didn't reveal anything useful, turns out (after a little Googeling) that Microsoft install the wrong version of the SQL Server Native client tools as part of the prerequisites -instead of the 64bit version you'd expect, they go and install the 32bit which then makes the rest of the installer complain...

    Classic! Anyway, thanks to Eric Falsken for the heads up on that error...

    # Friday, May 09, 2008

    The Site Doctor site is featured on CSS Mania

    Friday, May 09, 2008 5:10:02 PM (GMT Daylight Time, UTC+01:00)

    Perhaps not a big thing to shout about for some but our new company site has been featured on CSS Mania!

    Check the site out and leave your rating :)

    http://cssmania.com/galleries/2008/05/08/the-site-doctor.php

    And if you've not already seen it, check out the updated website design process full of jQuery loveliness: http://www.thesitedoctor.co.uk/services/website-design-and-development

    # Wednesday, April 30, 2008

    The Site Doctor is hiring!

    Wednesday, April 30, 2008 4:18:00 PM (GMT Daylight Time, UTC+01:00)

    Despite all the doom and gloom surrounding the pending credit crunch, we're hiring as work is piling in and we need help :). So if you're a developer, designer, sales person, marketing guru -or you're just plain bored check out The Site Doctor's vacancies page for the great posts currently up for grabs!

    Not sure why you should come and work with us? There are way too many reasons to list in one go but here are my top 5:

    • You'll have a great boss (ok I'm a touch biased)
    • We have 20% time (every Friday we down tools and do something cool -that doesn't relate to the main projects you're working on at the time -more about that another day)
    • We're committed to your development and will fund courses etc
    • There are bonuses to be had for referrals and working hard!
    • You get your Birthday as an additional bank holiday so you never need to worry about booking it off again!

    Oh and there's free Tea and Coffee -so I guess that's 6 reasons to get in touch.

    For more information about the posts available (more being added later this week) check out The Site Doctor vacancies page.

    # Tuesday, April 22, 2008

    Another super logo design from another over priced design agency

    Tuesday, April 22, 2008 6:31:57 PM (GMT Daylight Time, UTC+01:00)

    Thanks to Gareth and The Register for this one, it had me laughing for a good long while.

    After the last design debacle (the London Olympics 2012) logo, you would have thought someone would have thought carefully before making the image public but here's the latest logo for the UK's Office of Government Commerce (OGC):

    Other than being just plain boring it's ok right? Yeah, I thought so too until I was told to rotate it 90 degrees clockwise...

    Brilliant! I'm still laughing!

    Just goes to show (once again) that going with a large digital agency to create your brand identity isn't necessarily a good idea...

    Having just rebranded Avant Garde hair salons (see the new logo here), I'm now checking our design. Nope all looks good so it's "Big Guys" 2 - "Little Guys" 0

    Can't wait to see what the next government logo is...

    # Tuesday, April 15, 2008

    SQL Server Management Studio won't install over SQL Server Management Studio Express

    Tuesday, April 15, 2008 8:12:20 PM (GMT Daylight Time, UTC+01:00)

    Since re-installing my main development machine recently, I've had a real irritation -I had to resort to SQL Server Management Studio Express as I couldn't get the full version installed. This wasn't a problem until today when I had to re-create some full text catalogs (which is one of the things you can't do using the GUI in SQL Server Management Studio Express).

    I did look into getting this working before giving up before due to time constraints but this time I had no choice but this time I must have done something differently.

    Just to bring you up-to speed, whenever I tried to install SQL Server Management Studio using the SQL Server 2005 installer, I got an error message something along the lines of "Edition Version Conflict". The installer then suggests you uninstall the express tools (which you do) and you try again just to get the same error message.

    Most people on Google are just resorting to a complete re-install of your machine but I've found that's because you're not uninstalling the right thing. First thing I did this time was remove Microsoft SQL Server 2005 completely but near the end of the installer it asks you if you want to remove or modify. This time, I chose modify and set all the components to "Entire Feature will be Unavailable". That then seems to uninstall it fully for you. Now uninstall SQL Server Management Studio Express and you're done :)

    Hope that helps someone else (or me in a few months time...)

    # Wednesday, March 12, 2008

    Site, Sight, Stacey, Stacie and all the other ways you can spell The Site Doctor wrong

    Wednesday, March 12, 2008 9:54:08 AM (GMT Standard Time, UTC+00:00)

    One of the quandaries I've had for a while with The Site Doctor is our name, it sounds silly but I've lost count of the number of times I've had to spell out "site", it may not be too obvious why at first glance but there's two common spellings of "site" -one relates to websites, building etc, the other opticians (sight). Silly eh!

    It has never really bothered me in the past but now that I have Stacey working with me we run into another issue -not only does she have a difficult to spell surname (Shapcott), people use so many inflections of "Stacey" it's comical. So this week I've taken it upon myself to sort this and have gone all out creating email aliases (we used to just have name@, name.lastname@, initiallastname@) but Stacey now has Stacie, Stace, Stacee and numerous other counterparts.

    In an effort to make life easier for our clients, we've also got a few more domain names that point to our main domain name which include:

    www.thesitedoc.co.uk

    www.thesitedr.co.uk

    www.sitedoc.co.uk

    and my favourite:

    www.thesightdoctor.co.uk

    A little overkill perhaps but for the sake of £20 I thought it was worth it ;)

    Moral of the story: Don't have a long winded name that has words that sound similar to others in it ;)

    # Saturday, March 08, 2008

    Rackspace partners with The Site Doctor

    Saturday, March 08, 2008 10:24:01 AM (GMT Standard Time, UTC+00:00)

    There are a lot of changes afoot at The Site Doctor at the moment -not just the new company identity, site and top secret plan but we're partnering with industry leaders to ensure we're able to offer the very best service possible.

    Dedicated managed servers from Rackspace

    Today I'm going to introduce our hosting provider, Rackspace. The Site Doctor has partnered with Rackspace®, Europe’s fastest growing and most successful IT hosting company, to provide our fully managed hosting solutions.

    The Site Doctor has chosen Rackspace as our trusted hosting partner as they are completely focused and experienced in managed hosting. Every system and process at Rackspace was built exclusively for delivering a reliable and secure service, with support staff highly trained for supporting complex hosting environments. Rackspace supplies the necessary superstructure - web, application and database servers, network devices, bandwidth and managed services - needed to run any outsourced hosted solution. Solutions are hosted in state-of-the-art secure data centres, watched over by certified staff.

    Another reason behind The Site Doctor's decision to partner with Rackspace was Rackspace's award winning and unbeatable level of customer service -nicknamed as "Fanatical Support®". Rackspace employees are available 24/7/365 to meet and exceed your expectations, meaning fast responses to critical issues, unlimited (free) technical phone support, access to their huge online knowledgebase, guaranteed 100% network uptime and many other business-critical support features. By outsourcing to Rackspace, we get the peace of mind that our hosting environment is being looked after by the experts.

    Rackspace's commitment to its customers has won them the Unisys/Management Today Customer Service Excellence Award for 2005, in addition to being named Microsoft's Gold Certified Hosting Solutions Partner of the Year and Red Hat's first Advanced Hosting Partner in Europe.

    The Site Doctor highly recommends Rackspace because, like us, they hold the highest standards in service excellence and therefore are able to ensure that mission-critical applications will remain up and running in a secure environment.

    # Thursday, March 06, 2008

    The new "The Site Doctor" website finally gets online!

    Thursday, March 06, 2008 3:26:31 PM (GMT Standard Time, UTC+00:00)

    Somewhat behind the original schedule we've finally launched the new company website!

    There's still more refining to be done to it and there are a few errors but it's far better than the old site :)

    Visit the new The Site Doctor website at www.thesitedoctor.co.uk -new customer quotes and portfolio items coming soon!

    We've got some wicked new branding designs to share shortly but until it's all published it's all very hush hush I'm afraid ;)

    # Tuesday, February 12, 2008

    Stacey's first day and the company is incorporated

    Tuesday, February 12, 2008 3:48:54 PM (GMT Standard Time, UTC+00:00)

    Today is Stacey's second day and change is already abreast, Monday was somewhat quiet on the business front with Gym, Hair Cuts, Lunch, Shopping and numerous phone calls but today things have really started moving -the first port of call was going Ltd:

    Congratulations...

    We are pleased to advise you that your company, THE SITE DOCTOR LTD has been accepted for incorporation by Companies House

    To my foreign readers this means that my West Midlands based web design company The Site Doctor is now officially listed with Companies House -we've got a certificate 'n everything...

    Although it was a "real" company, now the main benefit is If The Site Doctor Ltd was to go bankrupt, each shareholder is responsible only for the amount they have invested in the company -so if The Site Doctor Ltd was to go bankrupt (which I hope it doesn't!) I won't lose our house!

    Watch this space as The Site Doctor Ltd and it's new branding will be launched later this month...
    # Friday, January 18, 2008

    Registration opens for the UK launch of Visual Studio 2008 -in Birmingham

    Friday, January 18, 2008 12:13:38 PM (GMT Standard Time, UTC+00:00)


    For those of you Microsoft readers I thought I'd let you know I've just had an email come through about Visual Studio's UK Launch. It's happening on March 19th 2008 in Birmingham's ICC. Registration has finally opened and you can register here: http://go.microsoft.com/?linkid=8126604

    Alternatively check out the live cast at: www.heroeshappenhere.co.uk.

    Why am I excited about this? Well the last launch event I went to gave away free -and full- copies of Microsoft Visual Studio 2005 and SQL Server 2005 to every delegate! Hope to see you there -let me know if you can make it.

    # Wednesday, January 16, 2008

    Fantastic new -and cheap domain name registrars

    Wednesday, January 16, 2008 12:59:38 PM (GMT Standard Time, UTC+00:00)

    After our recent issues with Fasthosts (or as they are now fondly referred to in the office - Farcehosts) I have made the conscious decision to move away from them completely over the forthcoming months (probably years). We no longer have any clients on their hosting platform but we still have circa 300 domain names registered through various accounts through their sister company UKReg.

    Due to the authority's charges, we can't just transfer all these domains away as it'd cost us a fortune (and possibly one we can't recoup) so I'm going to do it as they expire. In our search to find an alternative provider someone suggested we check out the new kid on the block - Heart Internet. According to those in the know on Underscore they are a bunch of guys who used to work at 1&1 and decided they could do it better.

    So far I've found their service to be great -and value wise they're cheaper than most providers which is a bonus. As with most of the providers these days it's all managed through their easy to use online control panel which is pretty straight forward. If you're on the lookout for great value or cheap domain names give Heart Internet a look.

    BTW if you're wondering where Heart Internet's .co.uk domain names from 9p is, check under the transfer fees. Still £2.59 is a great price for any .co.uk!

    # Wednesday, January 02, 2008

    The King Daddy of Office chairs - Herman Miller's Aeron

    Wednesday, January 02, 2008 9:47:13 AM (GMT Standard Time, UTC+00:00)

    If you've found this article through a Google search I expect like me you've read a plethora of articles and blog posts that vary from saying how amazing the Aeron is, to how the Aeron is an over-priced relic of the burst dot com bubble of the 90s. Well this one is my take on Herman Miller's Aeron.

    Before buying my Aeron I decided to make use of Herman Miller's trial Aeron, this isn't something they make you overly aware of so if you're thinking about getting a new office chair, contact your local representative (or the Herman Miller website) and ask if you can hire one for a month. It'll cost you somewhere around £40 but it'll at least allow you to see what you're getting before outlaying £400+. The trial Aeron took a little getting used to which I've put down to the fact that my posture in the old chair was seriously bad but after a week or so I was sitting very comfortably indeed.

    One of the simpler things I liked about the Aeron was the fact you can raise it up higher than many other chairs, this is important for me as my desk is 4-5 inches too high which means I'm always sitting incorrectly. By raising the Aeron up a little more I was able to sit with my arms flat on the desk reducing shoulder and back ache considerably. Another aspect of Herman Miller's Aeron chair that I liked was the fact you could adjust the resistance of the back, again a simple; but important feature, it takes a little trial and error but you can get the balance just right so it lifts you up into your position but doesn't stop you from leaning back to relax (or in my case kick back when you do something right).

    Rather than having a cushioned fabric seat, the Aeron has a mesh that stretches a little to offer the same comfort padding does but without the worry that in 2 years time, the padding turns to something more like cardboard (which is one of the factors that prompted my search for a new office chair). The downside I've found with this mesh is it overly aerated which in my case means my bum is kept very cool (and back which is a good thing as sweatiness is reduced to a minimum) -great in the summer but in the winter brrrr!

    The main downside to having the Aeron is the price, as I wanted a grey one, I had mine imported from the States and paid a premium but you can pick up the basic spec chair for around £400 (and probably less if you do a little bargaining), baring in mind the 12 year warranty these chairs carry it should in theory outlast 3-4 £99 type office chairs and look after your back in the meantime. Being somewhat of a scrooge, I looked at it from the POV that the difference between what I would spend on new £99 chairs in the warranty period of the Aeron would only be a matter of £200 or so which equates to around 5p per day. That's got to be worth it :)

    On the whole though I really like my Herman Miller Aeron, I feel it has really helped my posture and although I didn't really suffer from back ache after a long day (probably down to my canoeing) I feel that the small investment short-term will pay off in the longer term. I consider the chair a luxury and so wouldn't splash out on it if I were a start-up as there are far more important things to get sorted first! That said, if you're planning on spending long hours in your chair from the outset maybe it is worth the expense from the start.

    It's worth stating at this point that in addition to trying out the Aeron, I also tried out Herman Miller's alternative offerings and a number of alternative office chairs but I didn't find I got the same comfort.

    I did a lot of shopping around for a suitably cheap(er) supplier and was surprised to find out that the supplier just down the road from me was able to offer the cheapest price by far (ignoring delivery etc) so check out Creative Box in Birmingham, Kate from Creative Box in Birmingham was more than helpful and patient in answering my 101 questions so I'm sure she'll be able to help you out too.

    # Thursday, December 20, 2007

    Ethical Christmas Presents/Cards

    Thursday, December 20, 2007 10:37:17 AM (GMT Standard Time, UTC+00:00)

    Last year was the first year we sent out presents to clients and it went down a storm though choosing the presents is somewhat awkward -especially when it comes to wine, what if they're a red wine drinker or a white wine drinker etc?

    Anyway I digress, as usual we've started receiving gifts from companies and as usual we've had one or two "we're not sending out cards this year, instead we're donating the money to xyz" or "we've spent the money we were going to spend on you, on a goat". A little un-PC I know but -gee thanks.

    What a ridiculous thing to do, it really gets my goat (pun intended) when people do this, it's so pretentious -and doesn't impress me in the slightest, they'd be better not to bother -or- donate and not tell me. Why, instead of not spending that £1.00 on a card "saving the environment" don't you pay your bills by BACS instead? That way you would avoid sending a small cheque in a huge envelope with your complement slip etc? Surely THAT would be making more of a contribution?

    All these donations to me just say "We've not got the time or inclination to get you something personal so we won't bother". Further more, Stacey and I donate to charities on a monthly basis anyway -to charities that we care about. Some of you may remember the Cheshire Ring Race we did for charity for example.

    As I mentioned earlier, this year we were donated a goat -ok it's supposedly gone off to a family in Africa somewhere but quite frankly they should have saved all the donations up and gone over there and helped out, now THAT would have got my attention. Having been on a charity aid project in The Gambia myself I know that would mean a lot more to the locals than (apparently) being sent a goat.

    Anyway, enough ranting, if you want a nice Christmas hamper or bottle (or two) of wine for your friends, family or client this year check out the Wine and Hamper Gift website for some ideas.

    # Monday, December 03, 2007

    February 8th - a date for your diary!

    Monday, December 03, 2007 5:13:35 PM (GMT Standard Time, UTC+00:00)

    Well it's been a hectic few days what with breaking the news to everyone and getting things in place but we've finally got Stacey's management to give her a leaving date -February 8th. It's still a fair way off but a lot better than we were expecting (sometime in March) so we can't complain.

    I just hope the new office is in place in time -let alone the new website (still very much in development)!

    # Friday, November 30, 2007

    Mobile content developers Mobile Pie wins the New Mobile Game Developer Award

    Friday, November 30, 2007 3:23:25 PM (GMT Standard Time, UTC+00:00)

    This has taken me a while to post but kudos to our mobile content development partners Mobile Pie who have managed to win the New Mobile Game Developer awards sponsored by Channel 4 and EA Mobile.

    Read more about it here: Mobile Pie Wins 4Talent Mobile Game Award

    # Tuesday, November 27, 2007

    Changeable headers using the media picker

    Tuesday, November 27, 2007 6:26:51 PM (GMT Standard Time, UTC+00:00)

    A project we’re currently working on needs to have interchangeable header images. The theory is to set the header image on the parent page and then unless a template is specified for the page, it should use one of it’s ancestor’s.

    Umbraco as a nice control called a “Media Picker” which I felt was perfect for the job as it meant you could easily share header images across the site and it also made sense from a user perspective to have a “Header Images” folder to choose from. The issue from my point of view was how to traverse up the tree until it found a header image to use. Imagine the following site map:

    -Home
         -Products
              -Category
                   -Product details (Custom header image)

    If you’re on the products/category page it should display the header image from Home but when you’re on the product details page it needs to show the specified header image.

    So how do you do it? It turns out it’s (fairly) simple using XSLT. The first issue I ran into was getting the URL of the media file from the media picker control, Umbraco offers a useful function to do this for you (well almost!). Using the function umbraco.library:GetMedia you are able to get the details on the file based on the media item id but it includes everything so you then need to use a little XSLT to select the attribute “umbracoFile”:

    umbraco.library:GetMedia([XSLT TO SELECT THE FIELD],'false')/data [@alias = 'umbracoFile']

    That should give you something along the lines of “/imgs/somefolder/somefile.jpg”

    Now how can you traverse up the tree to get the data? Thanks to Morten Bock/Casey Neehouse for helping me understand this XSLT, but the following code should give you the URL of the nearest media item in the tree:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE xsl:Stylesheet [ <!ENTITY nbsp " "> ]>
    <xsl:stylesheet 
            version="1.0" 
            xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
            xmlns:msxml="urn:schemas-microsoft-com:xslt"
            xmlns:umbraco.library="urn:umbraco.library"
            exclude-result-prefixes="msxml umbraco.library">

    <xsl:output method="xml" omit-xml-declaration="yes" />

    <xsl:param name="currentPage"/>

    <xsl:template match="/">
        <xsl:choose>
            <xsl:when test="$currentPage/ancestor-or-self::node [string(data[@alias='pageBanner'])!=''][1] /data[@alias='pageBanner'] != ''">
                <xsl:value-of select="umbraco.library:GetMedia($currentPage/ancestor-or-self::node [data[@alias='pageBanner']!=''][1] /data[@alias='pageBanner'],'false')/data [@alias = 'umbracoFile']"/>  
            </xsl:when>
            <xsl:otherwise>
                <!-- The URL of the default banner just incase the user removes the homepage banner (would be better as a parameter) -->
            </xsl:otherwise>
        </xsl:choose>
    </xsl:template>

    </xsl:stylesheet>

    Then add a macro to your project and you’re done :). You can see it in action on the new Lucy Switchgear website if you're interested, it's currently being written so it's bound to be a little rough around the edges but do let me know what you think. Our remit was to improve the CMS they had in place making it easier to manage the site and also sort out a few major issues from a SEO perspective. Although altering the design wasn’t part of the initial brief I think you’ll agree the facelift we’ve given the site is for the better (even if it’s just from a usability point of view).

    # Saturday, November 24, 2007

    Florame organic aromatherapy hits the press

    Saturday, November 24, 2007 11:23:50 AM (GMT Standard Time, UTC+00:00)

    Having one of the business owners work in PR can't be a too much of a bad thing for a company, especially not when you manage to get your name into Sunday Times. I'm not sure whether this is something they pushed for themselves or whether it was just the editor happened to come across it but I thought I should share :)

    The response from getting into something like the Sunday Times is quite phenomenal, there was a very noticeable shift in the number of sales put through the website and searches performed so if you ever have the chance of a mention, jump at it!

     

    http://www.timesonline.co.uk/tol/life_and_style/men/article2657685.ece

    # Friday, November 23, 2007

    Fasthosts fail to amaze again

    Friday, November 23, 2007 9:22:41 AM (GMT Standard Time, UTC+00:00)

    I don't know if any of my readers are familiar with Fasthosts' recent security problems that hit the press a couple of weeks ago but I couldn't help but laugh at a conversation I had with them the other day. Baring in mind they had a breach in their security which meant that all passwords had to be reset I was astonished to get this email about an FTP login issue.

    Is it just me or is that a little nuts asking a user to send their username and password in clear text just after a major breach in security? I thought my response was very measured:

    # Tuesday, November 20, 2007

    The office to end all offices

    Tuesday, November 20, 2007 6:31:46 PM (GMT Standard Time, UTC+00:00)

    Some of you have already heard about my miss fortune with the office flooding. It's thrown things up in the air somewhat at a time when I could really do without it.

    The bonus however is that I get to have a nice new office fitted (hopefully on the insurance) but that's turning out to be a saga in itself. As with any large expenditure we've gone out and got a few quotes from companies such as Sharps, Neville Johnson and some other smaller companies to get an idea of costs etc. To say there is a wide range in the price is an understatement -they range from £1,000 to over £16,000! The office is only 9ft x 9ft which means it'd be £1,777 per square foot! How nuts is that!!

    Anyway, I thought people might like to see what I'm thinking about having fitted atm.

    Now that Stacey is soon going to be working with me we ideally I need to cram (and it is a matter of cramming) two people into the office space and I think the solution of having the two terminals sitting back to back but offset like this will work nicely. The other problem I have is the size of my screens, at the moment they measure 115cm wide and my old desk meant I was sitting too close to them and would end up with screen burn but this design should allow me to sit far enough away.

    I'll probably remove it shortly but the program that I used to layout the room has a 3D export that you can checkout at: www.thesitedoctor.co.uk/office/

    # Monday, November 19, 2007

    25% discount at Florame organic aromatherapy

    Monday, November 19, 2007 10:53:21 PM (GMT Standard Time, UTC+00:00)

    Ahh Christmas is fast approaching again -and for once I've actually got a few presents (I usually buy them all on the 24th of December) -not that I can take any credit for that, it's all down to Stacey. Anyway I wanted to share this 25% discount for www.florame.co.uk with you all just in case you were in the market for organic aromatherapy gifts this Christmas :)

    If this email does not display correctly, please click here

    Florame UK
    Give an organic treat this Christmas -
    for him, for her, for friends, for family
    Just log on to www.florame.co.uk and once you've done your shopping and
    got to the check out type in the following code to get your 25% discount: CONSOL07
    Offer ends: 16/12/2007 Gift wrapping available - Only one use per customer
    Florame is France's leading independent producer of organic skin care, home care and aromatherapy products and is certified organic by EcoCert

    And if you're thinking about treating someone to a hamper full of luxury food and wine why not check out www.WineAndHamperGifts.co.uk. Oh and don't forget Miss Mays for some festive fun ;) haha, ok that's all the pimping I'm going to do this year.

    Well perhaps not!

    # Wednesday, November 14, 2007

    Day 2 - Did she or didn't she?

    Wednesday, November 14, 2007 11:12:11 AM (GMT Standard Time, UTC+00:00)

    Ok, so the attempt at drama failed! Believe it or not Stacey had the guts to do it, she handed in her resignation so it's only a matter of months/weeks before she's working with me full time right? Well we're not sure...

    Turns out that when she handed in her letter of resignation her boss refused to accept it (being the diligent worker that she is I can completely understand that!) and instead he told her that he was going to put it in his drawer and not mention it to anyone to give her time to re-think and discuss it on Friday.

    So the question is, will Stacey give in and chose the route of more money and/or less working hours over working with me? Well the suspense is killing me -probably more than you but I doubt she'll stay as she's already made up her mind and has started to get excited.

    As far as the risk element goes -which is what I think would put her off- she's realised:

    1. There's enough work for her to do here
    2. If there isn't she can get another job
    3. She's chartered which means companies are screaming out for her skills so she can do agency work...

    All good in my books but we'll have to wait until Friday to find out!

    I can only imagine how the conversation went:

    Stacey: "Please accept my resignation, here's a letter explaining why"

    Boss: "No, sorry, I won't. Nope, no way, you can't"

    Stacey: "Well I am, it's not you, it's me"

    Boss: "Tell you what, lets hide this letter and pretend it wasn't written, I won't tell if you don't"

    Stacey: "I'm still leaving"

    Boss: "Tell me what you want that'll make you stay -more money? Fewer hours? Less work..."

    Stacey: "Nothing, I'm leaving"

    Boss: "Well, have a think, lets not rush into anything"

    Stacey: "I've been thinking about it for months, I'm leaving"

    Boss: "Lets discuss it on Friday, have a think about what you want/need and I'll sort it"

    Stacey: "Fine whatever makes it easier for you. I'm still leaving"

    # Tuesday, November 13, 2007

    TOP SECRET - Today's the day!

    Tuesday, November 13, 2007 9:49:43 AM (GMT Standard Time, UTC+00:00)

    Ok so today's quite an exciting -and pretty scary day. After a few months of speculating, Stacey has finally decided to hand in her notice and come and work with me full time. It's scary because although I know it'll make her much happier and drive the business forward but it also means that the business will now be the bread winner (main household earner) so there's no more time for messing around!

    I think it'll be quite an interesting time both for us and for others worried about doing the same sort of thing so I'm going to try and keep a fairly up-to-date diary of the events, trials and tribulations here.

    The main concern from Stacey's point of view is that as it's a web development business she can't add anything to it which I personally think is tosh as there is a lot of non-specialised work involved in running a business which she will be able to do and there are many paid aspects of our work that she can get involved with as well.

    Anyway, here goes, lets just hope she remembers to hand in her notice ;)

    # Monday, November 12, 2007

    A show of hands -why are you in business?

    Monday, November 12, 2007 5:05:51 PM (GMT Standard Time, UTC+00:00)

    As part of the company's branding overhaul, I'm currently reviewing The Site Doctor's business plan to make sure it still fits in with where I want the business to go and what I would like to achieve and Stacey (our latest and greatest employee yet) asked the simple question "Why are you doing it?".

    It's a good question and one I wanted a witty but honest response from but I couldn't think much further than "To make money" and "To improve our lifestyle" -both of which are perfectly valid I know but I would have liked something like "To make the world a better place through a variety of events aimed at improving people's outlook on live", complete tosh of course but hey.

    So why am I in business? Why did I setup The Site Doctor -other than because I felt it was my calling and a quicker way to a better life? It's certainly not the money otherwise I would have given up a long time ago and it's certainly not the social status being a web developer brings so why do I do it? Personally part of it for me I think is to prove people wrong, this isn't the main motivator and I realise may not be the best reason but a part of me wants to be able to show all those people that told me I was mad when I first started talking about it they were wrong and they're the silly ones for suggesting otherwise...

    Are you in business yourself? I'd love to hear why you do it, why you get and work hard -often for little initial reward. What drives you?

    # Friday, November 09, 2007

    Growing your business - Simon Farnsworth from Floors-2-Go

    Friday, November 09, 2007 12:23:49 PM (GMT Standard Time, UTC+00:00)

    Recently, I've had the opportunity to go to a couple of interesting talks on business courtesy of CIMA and every time I've jumped at the opportunity as you never know what nugget of information you may pick up.

    Last week I went to a talk by Simon Farnsworth on how to grow a business -something I'm very interested in at the moment. Simon Farnsworth was the CEO of Floors-2-Go and helped the company grow from a small family run business (which I found out was started in the West Midlands) to a PLC and then finally to a management buy out in 2006.

    The talk itself was interesting buy not quite what I was expecting (which seems to be the theme of many of these talks at the moment) as it focused mainly on his career since leaving school rather than how to grow a business but it was non-the-less interesting.

    One thing that he said amazed him was the fact that many of the businesses he has got involved with didn't even have cash flow forecasts before he started. He said this to a room of chartered accountants, most of whom were aghast (as to was he) to hear this however I for one have rarely had an up-to-date cash flow forecast and in fact it's only been within the past 6 months that I even bothered working on one. Why do I not have a cash flow forecast I hear you ask? Well that's simple; time.

    A cash flow forecast is something that as a sole trader you don't really worry about if you've got a good head for figures you should have a pretty clear idea of what's in, coming in, and going out so the sums are easy. Ok as you grow your business and have other employees working with you the going out part may be a little less under your control but you should still have a good idea of what's going on so the time required to keep an up-to-date cash flow forecast is better spent else where i.e. making sure the "coming in" part is growing as large as possible ;)

    I can understand why an accountant finds it incredible that an SME doesn't have a cash flow forecast as it is something that's very useful and more importantly allows you to see how much money you can draw from the business. Perhaps it's something you should look at doing once a week or month alongside saving your tax ;)

    One thing I felt sorry for Simon about though was how he talked about the business. Since the management buy out he has been removed from the position of CEO and told us about how he had been made to remove nearly the complete board of directors because when you remove a company from being a PLC you have to replace all the non-exec board members (another thing I didn't know). Simon has clearly put his life and sole into the business only to be thrown to the wayside without even so much as a thank you.

    There were a number of amusing ditties however from the talk including how Floors-2-Go managed to acquire the renowned orange Ferrari that I've seen around a few times (these were taken at the cinema):


    Or how he had an ASBO against him for littering the streets with all the Floors-2-Go balloons and leaflets.

    Simon Farnsworth is now CEO of Amber Windows which I couldn't place at the time but I realised there is a big bill board just up the road from here with it on. He seems a nice chap and I hope he can move on from Floors-2-Go but I get the feeling that'll take some time.

    # Saturday, October 13, 2007

    Why should we use you?

    Saturday, October 13, 2007 3:21:41 PM (GMT Daylight Time, UTC+01:00)

    While at the recent Startups Live event I got asked a question that I really should have been prepared for "Why should we use you?". At the time I was tired and hungry (no excuse I know) and so I was a little thrown.

    I think it's important to look at networking as a form of job interview but without the job at the end of it. What I mean by this is you should have a set of questions, answers and interesting topics to discuss1 prepared before you go into the event.

    1 Make sure you know what you're talking about though -you never know, they may know you're bull-shitting which isn't a good start to an ongoing relationship!

    I've steered clear of a fair few networking events in the past on the basis that they're often pissing contests but networking itself is an important part of any business and so shouldn't be avoided. So how should you answer "Why should we use you?". This is a silly question in my eyes because as the purchaser you have the power, you should already have a list of criteria on what you're looking for from a supplier. I can understand if you're looking to find out whether my list matches yours but you're most likely going to get the same responses:

    • "We're the best" -you're really going to take your word for it?
    • "Just because" -they clearly don't care about their company, do you really want to do business with them?
    • "We've got a proven track record" -fair play, good response, now you've got to do your research

    Either way, whatever response you get it's most likely going to be a conversation killer and so, not something you want to ask while networking, if you want to ask this, I would keep it for an initial meeting.

    So how did I respond? "That's a good question" -not a good response by any means but Stacey has come up with a superb answer in my view, put the ball back into their court and respond with

    Why do I like this response? Well because it's honest and gives the client control, you could baffle them with sales talk till the cows come home but if they don't like you or get on with you then doing business isn't going to be fun (and business should be fun!). Get rid of the question and move onto something more interesting, save the grilling for the initial meeting!

    # Thursday, October 11, 2007

    Tim Smit and Startups Live visit Bristol

    Thursday, October 11, 2007 8:46:36 AM (GMT Daylight Time, UTC+01:00)

    Seeing as I don't seem to have time to post my long, beautifully formatted posts at the moment -and that I don't think people really care whether they're beautifully formatted or not- I'm just throw this one on...

    Last night I went to the first in a new round of Startup Live events. I've come across them in the past but never paid much attention to them as I thought it would be another '99 venture capitalist haunt and I wasn't really interested in wasting my time with it. The event however was better than I was expecting. Well, it was and it wasn't.

    Sadly we got there a little late (what's new!) and missed the start of Tim Smit's talk however I really have to complement him on his talk, it was absolutely brilliant. It was probably one of the best -if not THE best- and most inspirational talks I've heard in a long time.

    For those of you who aren't aware who Tim Smit is, apart from having a great name and having been involved in the Lost Gardens of Heligan he's the founder of the Eden project. Tim Smit is clearly very passionate about the work that he's involved in which is really conveyed to the audience during his talk and I really do recommend you go and see him if you have a chance as you won't regret it.

    I think one of the most amusing things about the night was the speaker from Natwest who was clearly there to show how friendly and accommodating Natwest are but ended up demonstrating how far out of touch he is with their actual processes which was a shame as he really could have pulled the audience in and had them all signing up there and then.

    Other than Tim Smit however the majority of the event was pretty much as I expected which I was a little disappointed about but I guess that's the way it goes. At the end of the day, if you can come away with one small nugget of information/inspiration the event was worth it. Luckily last night Tim Smit was able to produce the goods ;)

    # Friday, September 21, 2007

    What have I been up to?

    Friday, September 21, 2007 11:20:01 PM (GMT Daylight Time, UTC+01:00)

    It's been rather quiet on my blog recently, if you're wondering why (and don't chat to me on/off-line) I thought I would share with you what we've been working on recently.

    For the past month or so The Site Doctor has been developing a new web site (www.wineandhampergifts.co.uk) for Porter and Woodman Gifts Ltd - a local company that produces personalised corporate hampers and gifts. It's been quite a challenge as they have a rather unusual ordering system that allows multiple recipients/addresses multiple items. Looking at it now, it's not so complicated but the delivery charge calculations and initial specs took a while to fully grasp. It's been really enjoyable.

    I'll probably cover aspects of the site over the forthcoming months but there are a few really nice features to the Wine and Hamper Gifts site (or at least I think so), some of which the end user will never know about such as the use of generics to calculate the address/recipient/gift variations) and those that they may -for instance the use of the JavaScript1 Zoom function on the product details page (courtesy of LuckyZoom), also the design created by our excellent designer Gareth Brown all adds up to what has to be one of the best sites I've developed to date.

    1 Yes, I did just say I've integrated some JavaScript into the site ;)

    I doubt most of my readers are interested on the in's and out's of the project itself but from an SEO perspective, I for one am expecting pretty decent results. We opted to use the URL Rewriting ISAPI from Helicon this time round over our usual IISMods URL Rewriting ISAPI as for some reason the IISMods site has been offline for a while (and checking now has been converted into a very weird site).

    Another aspect that some people may be unaware of is that the majority of the Wine and Hamper Gifts site operates the same without JavaScript as it does with JavaScript, this is important not only for screen readers but also search engines. There is only one area of the Wine and Hamper Gifts site that I'm aware of that doesn't operate without JavaScript and that is the "Personalise this gift" link on the cart page that allows the user to either edit the existing message or add one that doesn't already exist, that's because it uses a LinkButton, but I may find a way around that later.

    Other features that I really like are little things like the way the drop down lists on the left hand menu are created -they're not actually drop down lists but unordered lists that are then manipulated using JavaScript, I think the JavaScript could do with a little tweaking but the result is superb. The Wine and Hamper Gifts site also creates a PDF receipt for the user which is emailed to them, this is something I've been meaning to look into for some time but haven't had the chance, luckily while I was developing the site, Sean Ronan posted to the MsWebDev list about an ASP.Net PDF library iTextSharp (a port from a Java library) which, despite a few oddities from the POV of the Java port does exactly what I wanted. The library is pretty easy to use once you get your head around it and certainly produces some nice results.

    There's still more work that's needed to finalise the content and various aspects of the Wine and Hamper Gifts website but if you have a chance, check out the new Porter and Woodman Gifts Ltd Wine and Hamper Gifts website and leave a comment here letting me know what you think :D

    Oh, and they've given us a pretty high target to get before Christmas so if you're thinking about treating your customers to a personalised corporate hamper or gift give a little thought to using www.wineandhampergifts.co.uk

    What have I been up to?
    Useful Links:  #  digg it!  del.icio.us  Technorati  email it!  Post CommentsComments [0]  Trackback LinkTrackback
    CategoriesTags: AJAX | ASP.Net | C# | CSS | Design | SEO | The Site Doctor | Web Development
    # Tuesday, September 11, 2007

    Wording a letter/email to get something

    Tuesday, September 11, 2007 9:16:46 PM (GMT Daylight Time, UTC+01:00)

    When running any business, there will inevitably be a time when you need to ask a client for permission for something, whether it's to use their name as a reference or to bill them for a service. These letters are always tricky, get it wrong and your client will be able to avoid taking action on your request, get it right and you'll be able to reap the rewards of success (or so I'm told!).

    I had one such occasion recently and thought it may be of use to share my experience/findings with others. Take a look at these two emails (semi-fake), one got what it was after, the other not. Once you've read them, I'll explain why and how you should word something so you can get what you want (which is most likely money!).

    Example Email 1

     John,

    As the system has been in place for a number of months, I feel it is important that we have a support agreement put in place to avoid any unexpected invoices.

    As previously discussed, we recommend an initial support level of 10 hours per month, please let me know if you have any objections to this.

    Regards,

    Tim

    Example Email 2

    John,

    Now the system has been in place for number of months, I would like to implement the SLA as previously discussed. 

    If you have any concerns with the SLA being 10 hours a month, please let me know by Friday 31stAugust.

    Regards,

    Tim

    It should be fairly obvious which one got what it was after but incase it isn't, the second email got what it was after (an SLA of 10 hours a month) but why?

    Lets look at the two emails in more detail:

    As the system has been in place for a number of months, I feel it is important that we have a support agreement put in place to avoid any unexpected invoices.

    Does the reader really care what you feel? Unlikely. Do they care about avoiding unexpected invoices? Most likely yes but would they be worse off paying the odd (semi) unexpected email? Probably not as if you're an ethical company you'd keep them up to date with their time usage at any time...

    As previously discussed, we recommend an initial support level of 10 hours per month, please let me know if you have any objections to this.

    This first call-to-action required the reader's input for something, if (and this is most likely the case) your reader is either a business owner or executive, their motive to respond is almost nill as it's unlikely they're going to want to respond to your request just so they can give you money.

    You may also notice that there's no penalty to this first request, it's open ended i.e. if the reader doesn't do anything, he's no worse off -in fact, he's actually better off!

    Now lets look at the second email:

    Now the system has been in place for number of months, I would like to implement the SLA as previously discussed.

    Although similar in wording and still expressing what you would like to happen, you're not over complicating the issue and remaining factual.

    If you have any concerns with the SLA being 10 hours a month, please let me know by Friday 31stAugust.

    Notice that this time, the call-to-action is reversed, instead of asking for action to do something, you're asking the user to action something if he doesn't want it to happen? This may only read like a small difference, but it's a massive difference from your POV.

    The second thing to notice is the deadline (or penalty) -this time, if the reader doesn't respond by the given deadline, the action will go on regardless of whether they have given their input.


     So there you have it, two ways of writing what looks like the same email but with two very different results, just remember, next time you want something, tell your client it'll happen if they don't do anything -I'm sure you'll get more success!

    # Friday, August 24, 2007

    Understanding email server connection checks

    Friday, August 24, 2007 5:59:42 AM (GMT Daylight Time, UTC+01:00)

    One of the reasons I'm fanatical about Rackspace as a hosting partner is that if you're unsure about something, you know you're able to ask an expert and get a top-notch response to your quandary.

    I was recently speaking with another host who was talking about greylisting their emails -in short this is the process of rejecting the first email from a given email address/server and waiting for it to be (automatically) resent by the server later as unlike genuine email servers, most spam servers do not try to re-send an email if it's rejected by a server. We're not able to greylist our emails so I thought I would check that our spam filter settings were up-to-date.

    The guys at Rackspace had a look through our spam filter settings and recommended we disabled the statistical filters as they were somewhat outdated technically and increase our connection checks -more importantly, deleting the email after it fails a number of checks. Historically I've been adverse to deleting emails on the server as there's no way to recover them so I asked how accurate connection checks were and thought I would share their easy-to-understand response about what the connection checks do.

    Tim,

    In order to understand the unlikelihood of false positives for this case, you must first understand what each check does.

    Verify HELO/EHLO domain.

    This will create a test in which the domain passed during the HELO/EHLO is used to perform a DNS query to verify that the domain specified has an A record or an MX record. (All valid domains should have a valid HELO/EHLO domain, only mis-configured and spam mail servers fail this test)

    Perform Reverse DNS Lookup for Connecting Server.

    This will create a test in which the IP address of the connecting server is used to perform a reverse DNS lookup to determine the domain name. If a domain has a valid PTR record, the message is accepted. (Not all valid domains have a PTR record)

    Verify MAIL FROM Address.

    This will have the "From" address of the connecting server verified for each message to ensure that the user is a valid user on the mail server. If the user or server does not exist, the message is identified as spam. (This is a definite give-away that the message is a spam message).

    We can then set the delete threshold to 4. The "Delete message after X matches" will delete the message after it matches 3 of the above rules and/or black lists. This will almost guarantee that the message is spam. If the message fails all Verification checks, it is spam. If the message fails 2 connection checks and a DNS Blacklist check, it is spam. If an email fails both DNS Blacklist checks, and 1 verification check, it is spam. You are pretty much guaranteed that a message is spam. If you want to make extra sure, you could set the delete threshold to 4 that way it will have to fail all verification checks and one blacklist, or both blacklists and two verification checks.

    Thank you,

    Roberto M Chapa

    # Wednesday, August 22, 2007

    String.Format- Exception of type System.Web.HttpUnhandledException was thrown.

    Wednesday, August 22, 2007 9:43:12 PM (GMT Daylight Time, UTC+01:00)

    Type
    System.FormatException
    Message
    Exception of type 'System.Web.HttpUnhandledException' was thrown.
    StackTrace
    at System.Text.StringBuilder.FormatError()
    at System.Text.StringBuilder.AppendFormat(IFormatProvider provider, String format, Object[] args)
    at System.String.Format(IFormatProvider provider, String format, Object[] args)
    Error Line
    0

    Just got that message (or at most "Exception of type 'System.Web.HttpUnhandledException' was thrown")? Puzzled? I was the first time I got it, I've been meaning to post about it for quite some time now so seeing as I got it again today I took the hint.

    The error is horrifingly obvious when you know about it, in short, you've no doubt got some code that looks like this:

    String.Format("<html><head><style type=\"text/css\">body{color: #fff;}</style><body>...");

    Can you spot it now? Notice your style declaration is using the curly brackets? Basically String.Format is interpreting that as a placeholder i.e. {0} and is throwing a wobbly.

    The solution is simple too, just replace all opening/closing brackets with two i.e:

    String.Format("<html><head><style type=\"text/css\">body{{color: #fff;}}</style><body>...");

    I hope that helps someone out there :)

    P.S. Watch out for methods that use String.Format as they may catch you out in the same way -i.e. Subject of System.Net.Mail.MailMessage

    # Wednesday, August 08, 2007

    'debug' is undefined with Microsoft AJAX release and TextChangedBehavior.js

    Wednesday, August 08, 2007 6:20:47 AM (GMT Daylight Time, UTC+01:00)

    As with my previous post, we upgraded the AJAX framework on the weekend which broke a few things, but one control in particular that broke was our TextChangedTextBox which is based on Pete Kellner's timed postback control. Since updating we were receiving a "'debug' is undefined" error on line 1409 (which was in one of the JavaScript include files).

    Having had this issue before I updated the TextChangedBehavior.js but that didn't sort it, I have the latest version of the Futures on the server too so I was lost. Turns out I had an old version of the AJAX Futures DLL within the Bin folder of the project.

    So as with my post on the ASP.Net forums before -make sure you update your AJAX Futures when updating your Microsoft AJAX framework!

    # Monday, August 06, 2007

    Server cannot modify cookies after HTTP headers have been sent (RoleManagerModule.OnLeave)

    Monday, August 06, 2007 1:52:08 PM (GMT Daylight Time, UTC+01:00)

    Over the weekend we had to upgrade the server's version of ASP.Net AJAX which went fine until this morning when we started receiving the error "Server cannot modify cookies after HTTP headers have been sent."

    Luckily this wasn't bubbled up to the UI but incase other people are getting the error I thought I would share the fix. The error is apparently a known error with ASP.Net AJAX and the RolesManager. To fix the error all you need to do is add the following to your RolesManager web.config node:

    cacheRolesInCookie="false"


    The full error message was

    Message:
    Server cannot modify cookies after HTTP headers have been sent.

    StackTrace:
    at System.Web.HttpCookieCollection.Add(HttpCookie cookie)
    at System.Web.Security.RoleManagerModule.OnLeave(Object source, EventArgs eventArgs)
    at System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
    at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

    # Wednesday, July 25, 2007

    Identify IIS Sites and Log File locations for WWW and FTP

    Wednesday, July 25, 2007 4:18:42 PM (GMT Daylight Time, UTC+01:00)

    When we got our own dedicated server we needed to start working out a fair number of processes and decide upon a structure that was replicable, scaleable and manageable on a large scale, although the solution we've ended up adopting may not be the best, it certainly works for us.

    One thing that has been bugging me however is the location and folder naming convention of the log files -for both the web hits and FTP hits. Typically, shared hosting solutions place the log files under the same folder as the one your website's root is situated but as we had no plans on giving our clients access to these logs this was an unnecessary task so we left them collecting in the default folder.

    Leaving the log files in the default folder meant downloading them was very simple, all I needed to do was point our download script at the main folder and that was it, all would be included, the catch however was that the folders weren't named logically* instead they seemed to include some form of ID that was relevant to and assigned by IIS i.e. W3SVC1.

    *By this I mean human readable i.e. domainname.com

    Until recently I've not worried about analysing the log files beyond one or two clients whom I could manage fairly easily but now with the inclusion of a host of other domains on the server I needed a way of quickly and easily identifying the folders and which domains they related to.

    Historically when I needed to know which domain the log folder related to I would log onto the server, open IIS, open the properties of the domain, click on the log file properties and below the folder directory would be the folder name, that's fine if it's only a handful of domains but what when it's say 20? That's 2mins each (with cross referencing etc) so that's 40minutes. I needed an automated system!

    As it turns out, Microsoft have been kind enough to provide us with an interface we can easily code against in .Net so after a little Google-ing I wrote a number of little helper applications.

    This little console application simply loops through all the domain names on the server it's being run on (the default instance of IIS) and outputs the relevant log file and folder path into a handy text file. I'll post in another post about how I use this file.

    For convenience's sake I have this run on a nightly basis and the text file output to the root of the log file directory, that way when I download the logs during the next day I get the latest update of log file locations and domain names :)

    Download the IIS WWW and FTP log file location exporter.

    1 Year Update: I've posted the source for the IIS WWW and FTP log file location exporter here.

    # Tuesday, July 24, 2007

    Big Dreams - a waste of time?

    Tuesday, July 24, 2007 12:38:20 PM (GMT Daylight Time, UTC+01:00)

    If you're a semi-regular reader of my blog you'll know that I'm a great believer of having goals and targets to meet when you setup in business. As I mentioned in my mini series on starting up in business, these targets have to be achievable and quantifiable.

    Recently however I have had a couple of pretty zany ideas passed by me which, at first sight may sound completely nuts and unachievable but I've been left wondering why that is. I have always felt that The Site Doctor is a foundation for something larger but quite what that is I have no idea at the moment but one idea that's readily stuck with me is one that Rich Davies and I merely jested about -buying a big, expensive yacht and sailing it around the Caribbean for the rich and famous.

    I've put this idea to a couple of people since and every time they've laughed. I can understand why they see it as a joke but why should it be? When I first setup in business I had a surprising number of people assure me I was mad and it would never work so why should this idea be any different? Ok the investment involved is on a scale way out of the league of The Site Doctor but I still don't feel it's unachievable if the time and effort is put into it.

     

    What do you think? Is thinking big just a waste of time in your eyes or is it more speculative than wasteful?

    # Thursday, July 19, 2007

    Microsoft Expression Web and CSS -is it all it's cracked up to be?

    Thursday, July 19, 2007 11:02:32 PM (GMT Daylight Time, UTC+01:00)

    After a number of months of hearing how great Microsoft's latest web development environment is -Microsoft Expression Web- I thought I would install it in place of Dreamweaver on my new laptop. I was -until today- pretty impressed with some of it's features, how well it handles CSS within the IDE and had no reason to complain.

    That was until today. As I write this, I'm sitting in our apartment in Croatia with the sun beating down on me, generally enjoying life. As it's incredibly hot outside around noon, I thought it would be a good idea to crack on with some work on the new The Site Doctor design -which I hope to have online shortly after I return. So I load up Microsoft Expression Web and the various pages of the new site and crack on.

    I've already sorted the CSS for the site so there was no need to open any of the files or make alterations to them however I like to have them open so I can check class names and ids as I work. When I switched over at one point, I noticed that my nice, neat and tidy CSS file of around 190 lines was suddenly closer to 300. I couldn't work it out until I noticed that Microsoft Expression Web had separated out all my group declarations into separate declarations such i.e.:

    a, a:link, a:visited, a:active{
    text-underline: none;
    }

    Became:

    a:active{
    text-underline: none;
    }
    a:visited{
    text-underline: none;
    }
    a:link{
    text-underline: none;
    }
    a{
    text-underline: none;
    }

    Well done Microsoft, I thought you would have learnt your lesson after the fiasco that was Visual Studio 2003's HTML editing, what on earth were you thinking? I'm sure this is a simple setting I need to change (and I can understand why they've done it) but not having Internet access here there's no easy way of finding out (I've searched the help files) which means hours of careful CSS architecture have been completely trashed.

    So, as soon as I realised, I spent about 20 minutes meticulously working through the bunch of CSS files open reversing the mess Microsoft had made of them and promptly closed them, safe in the knowledge Microsoft Expression Web can't mess with them again. Or so I thought.

    A short while ago I needed to open one of the CSS files again to alter a few declarations and to my horror I found that the declarations had been ungrouped. I can't believe it, not content with simply altering the CSS files that are open, Microsoft Expression Web actually alters the CSS files on the FSO without you knowing.

    If you're ever thinking about using Microsoft Expression Web for CSS development then don't expect your files to be neat and tidy, in my case I would say the files were increased in size by almost 5x which ok may be 1Kb --> 5Kb but if you're getting tens of thousands of hits a day, that's a serious bandwidth increase.

    Not a happy bunny.

    # Monday, July 02, 2007

    The Cheshire Ring Race -the aftermath

    Monday, July 02, 2007 8:07:24 PM (GMT Daylight Time, UTC+01:00)

    “Ow ow ow how I ache!” I know that’s what you wanted to hear but sadly for you I feel strangely fine after completing The Cheshire Ring Race (for those of you who have been living on the moon for the past few months this was a 96 mile canoe race my brothers, canoe coach and I were doing for charity –if you’ve not yet donated and would like to, please do this at www.paddlathon.co.uk).

    So how was The Cheshire Ring Race?

    The race went particularly well despite various navigational and kit issues we completed The Cheshire Ring Race course in just over 22 hours (22 hours 57 seconds to be exact) without any injuries or drop outs. We came home with a gold medal –which I think was because we won our division but part of me says they’re all gold for just making it around!

    We were also all awarded a certificate and mug to prove we were there (see photos below) and our time so check it out all you doubting Thomas’ ;)

    The race

    I don’t know if it was one of the hardest things I’ve ever done what with completing things like my gold DOE and climbing Ben Nevis to mention a few but it was certainly one of the most challenging events I’ve competed in.

    We had a fairly good first leg, holding between 6-7mph and overtaking the guys that started a few minutes ahead of us, but then we had a few issues with getting to the next checkpoint in time and ended up not swapping over with Pat and Paul and instead chasing them around the next few checkpoints playing catch up. We finally met them at Relay Point #5 Ducie Street.

    The first mile or so of the next leg through central Manchester was pretty much just portaging lock after lock. I didn’t count them all but there must have been a good 8 or 9 locks and a few tunnels too (complete with dodgy locals of course). Before the next relay point we passed another boat with a broken rudder which has to be a massive PITA as you don’t want anything like that going wrong on a long distance race like The Cheshire Ring Race.

    Due to mega traffic in Manchester, the support crew decided to skip the relay point and continue onto the next checkpoint (7. Lymn (Burford Lane Underbridge)) which would have been ok if we had taken our water with us and had more to eat before setting off –neither of which we did as we thought it was only a quick 6.75 mile leg. I think this slowed us down somewhat as both Sam and I ran out of steam half way through the next leg and ended up drinking the canal water to ensure we could continue (not a good thing to do really but it was that or fall in).

    By the time we got to the next relay point we were pretty tired and I was seriously hypoglycaemic –to the point I was feeling faint but our super support team had food and drink already prepared for our arrival.

    Again, with somewhat sketchy directions, the support team managed to battle onto the next relay point just in time to meet Paul and Pat. The next leg included our first tunnel –and film crew! Had they not been there we would have ended up paddling through the tunnel and missing our next relay point! I would have loved to paddle the tunnels but it’s instant disqualification if you do...

    Somehow Pat and Paul wangled a short leg which was a PITA as I wanted to sleep and no sooner than we had got into the car we were off again!

    The next few legs were pretty uneventful, just a lot of water and canal boats, but waiting for Paul and Pat at relay point 11. Broken Cross, we were greeted with your typical Saturday night brawl –great entertainment I can tell you! No idea what it was about mind you however I know it involved Michelle and a lot of shouting. Sadly we had to set off before the police were able to get there and sort it out.

    Things got a little more interesting as the dark came in. Just as it had got real dark we were doing leg 12. Middlewich Big Lock which included a “make or break” portage –basically if we got it wrong we would either: Go the wrong way and head off to Sheffield, go in a loop back to a checkpoint a few miles back or continue on the right way. Wanting to get it right, I made a point of memorising the directions but when we got there things didn’t make as much sense as they perhaps should have and we ended up wandering into a housing estate before thinking “sod it, let’s try and work it out ourselves”. Shortly afterwards we saw the support crew drive past so we knew we’d gone the right way for once!

    Although I’ve paddled early in the morning and late at night in the past, until this race I don’t think I’ve paddled in the pitch dark, due to the rain the moon was covered by cloud which meant when we got out of the urban areas it was seriously dark which made navigation very hard. Sam did a sterling job and managed to get us around without any major incidents (though we did come close to crashing into a lock! –it’s amazing how something so large can be so hidden by darkness...!)

    By about 4am however dawn was starting to break and paddling became a lot easier, we had a couple of very nice legs however leg 16. Bridge 77 Congleton was nasty as there were 12 locks to run up right at the end! On the plus side however we did see a couple of kingfishers.

    Sam and I then paddled leg 18. Bridge 44 Bullocks Lane to the finish, meeting Paul and Pat at 19. Bridge 29, Clarke Lane to paddle the last 3.75 miles before finishing together at Bridge 18 (also the start).

    A breakdown of the relay points:

    1. Bridge 18 (Start/Finish)
      Distance to next point: 5 miles
      Locks: 0
      Paddlers: Tim/Sam
    2. Marple
      Distance to next point: 5 miles
      Locks: 16
      Tunnels: 2
      Paddlers: Paul/Pat
    3. Apethorn Lane
      Distance to next point: 3.25 miles
      Locks: 0
      Paddlers: Paul/Pat
    4. Dunkinfield Junction
      Distance to next point: 6.25 miles
      Locks: 18
      Paddlers: Paul/Pat
    5. Ducie Street
      Distance to next point: 8 miles
      Locks: 9
      Paddlers: Tim/Sam
    6. Marsland Road
      Distance to next point: 6.75 miles
      Locks: 0
      Paddlers: Tim/Sam
    7. Lymn (Burford Lane Underbridge)
      Distance to next point: 6 miles
      Locks: 0
      Paddlers: Paul/Pat
    8. London Road Bridge
      Distance to next point: 6 miles
      Locks: 0
      Tunnels: ½ (relay point on top of the tunnel)
      Paddlers: Tim/Sam
    9. Preston Brook Tunnel
      Distance to next point: 3.5 miles
      Locks: 1
      Tunnels: ½ (relay point on top of the tunnel)
      Paddlers: Paul/Pat
    10. Valley Farm, Little Leigh
      Distance to next point: 7.25 miles
      Locks: 0
      Tunnels: 2
      Paddlers: Tim/Sam
    11. Broken Cross, Bridge 184
      Distance to next point: 5.5 miles
      Locks: 0
      Paddlers: Paul/Pat
    12. Middlewich Big Lock
      Distance to next point: 6.75 miles
      Locks: 9
      Paddlers: Tim/Sam
    13. Wheelock
      Distance to next point: 4 miles
      Locks: 14
      Paddlers: Paul/Pat
    14. Rode Heath
      Distance to next point: 2.25 miles
      Locks: 10
      Paddlers: Tim/Sam
    15. Red Bull
      Distance to next point: 5 miles
      Locks: 3
      Paddlers: Paul/Pat
    16. Bridge 77 Congleton
      Distance to next point: 5.75 miles
      Locks: 12
      Paddlers: Tim/Sam
    17. Bosley Top Lock
      Distance to next point: 4 miles
      Locks: 0
      Paddlers: Paul/Pat
    18. Bridge 44 Bullocks Lane
      Distance to next point: 3.25 miles
      Locks: 0
      Paddlers: Tim/Sam
    19. Bridge 29, Clarke Lane
      Distance to next point: 3.75 miles
      Locks: 0
      Paddlers: Tim/Sam/Paul/Pat

    The weather

    The weather was pretty poor throughout, it seemed to start raining every time we were about to start a new leg of the race. I don’t mind paddling when it’s wet but it certainly makes it hard to get out of the toasty warm support vehicle!

    Although it rained for a lot of the way around I feel we were pretty lucky on the whole as there was a severe weather warning around Manchester on the weekend. The weather was pretty mild which meant the rain wasn’t too much of a hindrance –if anything it helped you cool down from the paddling!

    The team

    We had a fantastic team both on and off the water. I can’t begin to explain how crucial the support team is in an event like this and ours was fantastic. Our support team for The Cheshire Ring Race consisted of:

    They all went above and beyond the call of duty and made sure the change over paddlers were in the right place at the right time (most of the time) and also that food/drink was readily available for the paddlers who had just got off the water.

    The training

    My recent training routine has clearly paid off, I did mean to blog more about how I was improving in the run up to the race however time simply got the better of me. The long and short of it however is that I felt great during the race, ok I was tired at the end of the legs but by the time we had got to the next relay point I was ready to go.

    The one thing I wasn’t prepared for was the running, according to one of the marshals, the race involves nearly 10miles of portaging (getting out of the water with your boat and running until you get to the next part of the water i.e. around locks), that was particularly tough however I have been including running in my recent training routine so was able to manage it –I’ll be doing more now though!

    I’m very pleased with Sam’s training too as that has clearly paid off which makes my job easier! I can’t really comment on Paul or Pat’s training as we never ended up paddling together which is a shame in many ways but they were both looking good –all be it a little tired on the last leg.

    What have I learnt?

    Those of you who spoke to me before the race know I was aiming to beat the previous relay record (around 16 hours) and after doing that race I’m sure it can be done –and we’re already fit enough to do it. However having completed the race it’s evident that you need far better directions for the support crew and probably included a couple more drivers (which was the plan but sadly a couple had to drop out) to ensure they were able to rest between legs too.

    I also think from the POV of the paddlers, it’s important that you drink and eat a lot more than we did. Due to the navigational issues Sam and I didn’t refuel correctly on a couple of our legs which really affected our paddling the next time. Sam and I recon we burnt off in the region of 12,500 calories over the duration of the marathon –I’m going to weigh myself shortly to see how much weight I’ve lost but I recon it’s a couple of pounds.

    It’s imperative that each team member concentrates and concerns themselves with only their area –i.e. paddlers on refuelling and resting, drivers on driving, navigators on navigating etc. As soon as you start mixing them up you run into issues.

    The last thing I think I’ve learnt is to always go with your gut feeling –it may be a couple of extra kilos but always take your water pack, dehydration of even just 2% can massively affect your performance.

    So what’s next?

    Replace the 12,500 calories I burnt off!

    I would love to do another long distance race at some point, longer term I’d like to take part in the Devises to Westminster race but short term we’ve got the Hasler Finals (national canoe finals) in September to train for. Sam and I are aiming for a medal so I’ll keep you posted.

    Will we be doing the race next year? That’s a hard one, at the moment I’m doubtful but if we can get the support crew together again and the rest of the team are up for it I wouldn’t mind taking that record :D

    How much did you raise?

    We’re still not sure at the moment as there were four of us raising and the website –that and a few people are still promising to make their pledges but I think we’re going to be close to (if not over) our £2,000 target. As soon as I have tallied up the totals I’ll update www.paddlathon.co.uk

    In closing

    I’d like a moment to thank all those involved with supporting us during the event –without you all we wouldn’t have made it around. That also goes for the event organisers, co-ordinators and marshals, I’m sure there was a phenomenal amount of work involved to host the event –it was well worth it!

    The photos

    I’m going to get some more off Sam, Pat and Paul shortly but here is a selection of mine...

    • My 'small' pre-race drink
    • So how do I make this thing go?
    • Do we REALLY have to go?
    • I've got an itch
    • Zoom zoom! Forget timing and go fast!
    • No stopping us
    • The back was sliding out we were going that fast
    • Steady on
    • Finally after an hour in the car, we're off again
    • FOOD! WATER! NOW!
    • We have cross over!
    • What's that attached to our heads?
    • Should we have told Paul and Pat it was a canoeing race not a walking race?
    • ZOOM! So fast the photo's a blur -and check out the timing!
    • Far, far, far away already
    • Sam wondering where his dinner is
    • First sight
    • And across the finish line we go
    • Our well deserved prizes while eating our even more deserved dinner!
    • Paul: 'They're all mine!'
    • A winners breakfast
    • Cheshire Ring Race Certificate
     
    # Monday, June 18, 2007

    Server management 101 -part 1: Website directory structures and Identifying folder sizes

    Monday, June 18, 2007 10:24:35 AM (GMT Daylight Time, UTC+01:00)

    Since getting our own dedicated server a couple of years ago we’ve had a fairly step learning curve which a lot of the time has been a tad hit-and-miss (never at the detriment of our customers I might add). Luckily we’ve had the superb support of Rackspace behind us but as others may not be so lucky, I thought I would post up a few nuggets we’ve received over the years. As I remember more, I’ll add additional posts.

    Domain/Folder organisation

    One of the first issues we came across (and I’m sure many people have already got into this position) was the structure of the folders on both the server and development machines. The solution we came up with was to have a common folder –for argument’s sake lets call it “WebsitesFolder”. Within “WebsitesFolder” you then create a new directory for each domain name and finally within that, a folder for each subdirectory i.e. www, blogs etc.

    By creating a new folder for each subdomain, you are able to quickly find the correct folder for the domain. Then locally you are able to store the source files outside of the site’s root which will (or should) speed up your FTP transfer process as you won’t need to select which files to upload1. The structures might then look like this:
    Development server

    • /domain.com
      • /www/
      • /subdomain/
      • /Source Imagery/
      • /Some Irrelevant Folder/
    • /domain2.com
      • /www/

    Production server

    • /domain.com
      • /www/
      • /subdomain/
    • /domain2.com
      • /www/

    1It might also be worth you checking out SyncBackSE which is an excellent FTP client that only uploads files you have changed since the last transfer. It also has the added advantage that it has customisable filters allowing you to ignore source files and folders as _notes, .cs, .vb etc. http://www.2brightsparks.com/syncback/sbse.html

    Finding large directories

    The other day I noticed that one of our server’s disk space was running a little low but as far as I was aware there was plenty of space left. As we tend to store all client data within set folders I was able to quickly identify that it wasn’t the client folders that was taking all the room so what was?

    When you don’t know which folders are taking the space, there are a couple of tools you may find useful. The first I was told about was TreeSize (http://www.jam-software.com/freeware/index.shtml) -a free program that gives you a graphical representation of each folder’s usage:

    It then allows you to quickly traverse the directory structure and identify the offending directory. There’s a load more information available through the easy-to-use interface but if all you want is a number it’s a little overkill.

    The alternative to TreeSize

    A heading? Just for this? Yes –this little tool is the Mac Daddy of directory size info as far as I’m concerned as it’s a free (we like free ;)) command line tool found on Microsoft’s site called “Directory Disk Usage” –DIRUSE.

    DIRUSE is really easy to use, simply load up CMD and type in:
    diruse /m /* c:\
    and you’ll get a report of your chosen folder’s sub folders, related sizes and a count of the files within it. Ok it’s iteration can be a little slow but it gives you all the information you need quickly and easily.

    The syntax is as follows:
    DIRUSE [/S | /V] [/M | /K | /B] [/C] [/,] [/Q:# [/L] [/A] [/D] [/O]] [/*] DIRS

    /S
    Specifies whether subdirectories are included in the output.
    /V
    Output progress reports while scanning subdirectories.  Ignored if /S is specified.
    /M
    Displays disk usage in megabytes.
    /K
    Displays disk usage in kilobytes.
    /B
    Displays disk usage in bytes (default).
    /C
    Use Compressed size instead of apparent size.
    /,
    Use thousand separator when displaying sizes.
    /L
    Output overflows to logfile .\DIRUSE.LOG.
    /*
    Uses the top-level directories residing in the specified DIRS
    /Q:#
    Mark directories that exceed the specified size (#) with a "!".
    (If /M or /K is not specified, then bytes is assumed.)
    /A
    Specifies that an alert is generated if specified sizes are exceeded. (The Alerter service must be running.)
    /D
    Displays only directories that exceed specified sizes.
    /O
    Specifies that subdirectories are not checked for specified size overflow.
    DIRS
    Specifies a list of the paths to check –you can use semicolons, commas, or spaces to separate multiple directories if required.

    Note: Parameters can be typed in any order. And the '-' symbol can be used in place of the '/' symbol.

    Also, if /Q is specified, then return code is ONE if any directories are found that exceed the specified sizes. Otherwise the return code is ZERO.

    Example: diruse /s /m /q:1.5 /l /* c:\websitesfolder

    # Thursday, June 14, 2007

    The use and abuse of AccessKeys

    Thursday, June 14, 2007 8:02:59 AM (GMT Daylight Time, UTC+01:00)

    I’ve been meaning to post about the use of AccessKeys on websites now for some time (I wrote the post but never completed the list at the end). Then, this morning I saw a post from Tony Crockford on the WAUK list along similar lines so thought it was time I got the post online :)


    Just before Christmas, we were looking for a new house so I was spending an increased amount of time on Rightmove and it really started to bug me. I’m really pleased by the fact that they tried to make their site simpler to navigate by introducing AccessKeys to their pages but in my view they’re defeating the purpose of them by overriding browser shortcuts. In this case, the one I’m referring to is the use of Ctrl+K which I use a lot to access Firefox’s search bar.

    Why oh why have they chosen to override this key combination, in IE it’s not too irritating as it doesn’t activate the link, in Firefox however it automatically loads the link, so I’m forever being sent back to the buying homepage.

    I can understand that they want to make the key relevant, but what does “K” have to do with buying? I could understand if they were overriding “B” –and it wouldn’t bother me as it’s related, but K? I realise that it’s unpractical to avoid all shortcuts in all browsers but I would have thought they’d look into the main shortcuts first.


    I had planned to compile a list of common shortcuts but I’ve not had time yet –another thing on the list ;). What’s interesting however is that since I wrote this post in January, they’ve replaced a couple of the shortcuts already –Buying is now “B”.

    So what’s Tony Crockford got to do with this all? Well he referred the list to the WCAG Samurai’s point on AccessKeys which I think is a valid one:

    So there you have it, just don’t ;) -I think that now there are so many different browsers out there it’s impossible to account for them all so it’s probably the best methodology.

    # Monday, June 11, 2007

    The Cheshire Ring Race -It’s a monumentally stupid distance

    Monday, June 11, 2007 10:35:26 AM (GMT Daylight Time, UTC+01:00)

    I've been somewhat quiet on the blogging front recently as I have been training hard for the mammoth canoe race we're competing in at the end of this month. The Cheshire Ring Race for those of you who haven't been keeping up with the little news I've been posting recently is a 96 mile canoe race we're doing this year in aid of charity (if you've not already made your pledge, why not pop over to www.paddlathon.co.uk now and make a donation -we've got a fair way to go to our £2,000 target).

    Last night I decided it was time I sat down and started planning the route for the drivers, which first meant plotting the route for the paddlers and oh my god is it a long way! Until now I've thought "100 miles, yeah that's not too bad, we'll do that in a few hours..." (ok the few was around 20 but still). Plotting it on the map however shows just how far this thing is!

    Instead of feeling daunted by the distance, I'm now even more psyched than before -and have even more reason to hit the gym hard! If you're interested, I've uploaded the route plotted on Google Earth. Currently it only holds the point data but in time I'm going to expand it so it includes information about each route (for the paddlers and drivers) and perhaps once we've done the race, pictures of each point.

    For those of you interested in how my canoe training routine is going -it's good. I'm holding a steady 12st 6lb at the moment -sometimes dropping to 122st 4lb and I've blown my previous routine out of the water. Sam and I -despite some misfortune with our kit- have been kicking ass on the past couple of races -taking around 10-15minutes off our times from last year. I'm hoping to complete The Cheshire Ring Race in less than 18 hours at this rate...

    # Friday, June 08, 2007

    FREE BEER -and the chance to chat to like minded media types

    Friday, June 08, 2007 12:39:02 PM (GMT Daylight Time, UTC+01:00)

    This has to be my laziest post yet, it's just a paste of the press release but I'm to excited at the thought of free beer to re-write it ;) -Hope to see you there, shout if you're going.


    Chinwag Joins Forces With Top Software And Media Brands For Supersized Digital Networking Party

    The UK digital media industry is gearing up for a soiree of grand proportions in July at Chinwag's Big Summer 07 networking party (http://bigsummer07.chinwag.com).

    Giving the bash an extra boost - and supporting the inventive and fun entertainment programme, plus the lavish refreshments on site - are Chinwag's three party partners: Adobe (http://www.adobe.com/), Channel 4 (http://www.channel4.com/), and Purple (http://www.purple-consultancy.com/).

    The free event, to be held at the historic Imperial College Union in Kensington, London, will be the largest-scale bash of its kind for people working in the digital sector, with the party encompassing 5 large rooms and the enclosed quadrangle, allowing a total capacity of 2,000 revellers at any one point in time.

    Hosted by new media community Chinwag, it will to bring together professionals in web, mobile and other interactive media to make useful connections, celebrate the return of the new media sector as a sustainable growth industry, and mingle in style in the sunshine of a London summer's evening.

    Dominic Eames, editor, Online, at Channel 4 New Media said: "Channel 4 is always open to new ideas from the New Media community and is delighted to support Chinwag in this event.

    Toby Thwaites, managing director of Purple said: "Having worked with the team at Chinwag for a number of years I am delighted that Purple are able to support what will undoubtedly be the Digital event of the Summer"

    Sam Michel, Chinwag MD and founder said: "This is a great opportunity for the new media industry to do some "First Life" networking. The UK scene is buzzing with life, and it's great to bring everyone together en masse."

    "The party takes place on July 5. More details will be released in the forthcoming weeks with promotional activities, partnership with brands, and innovative use of social networking tools and technologies such as Facebook and Twitter included in the mix."

    More information & registration: http://bigsummer07.chinwag.com

    About Chinwag

    Chinwag aims to be a connecting rod for ideas and talent across the new media industries. Having provided Internet-based community forums, websites, email newsletters and consultancy for the new media sector since 1996, its website (http://www.chinwag.com) will be re-launched in July, aggregating information for the digital industries and updating its community focus. In February 2007 the Chinwag Live events series (http://live.chinwag.com) was launched. Topical panel discussions founded to cast light on issues and trends affecting the new media industries, the monthly sessions have also gone on tour to Internet World and Ad:Tech.

    In addition, Chinwag publishes Chinwag Jobs (http://jobs.chinwag.com), the leading recruitment website for online marketing, digital media, web, design and technical positions. It is used by the BBC, MySpace.com, Yahoo!, Amazon, Vodafone and the majority of recruitment agencies who place staff in the sector.

    Chinwag - Connecting New Media People

    Site: http://bigsummer07.chinwag.com

    # Wednesday, May 16, 2007

    How to calculate project timescales and costs

    Wednesday, May 16, 2007 2:42:04 PM (GMT Daylight Time, UTC+01:00)

    We’ve gone around in circles at The Site Doctor trying to decide the best method to calculate project costs and timings, historically I would look at the project brief, have a think about how much I wanted to work for a client and then I would –in effect- pluck a figure out of the air.

    As your company grows however you will need to think about a more scalable, resilient solution that reduces the chance of under quoting and I think we have a fairly nice solution so I thought I would share it :)

    Firstly, read up on how to set your base rate (see: Pricing your work). Once you have calculated your base rate, you will need to download this spreadsheet when offering the client various options, each option is given its own row on the summary table which is calculated off a dedicated sheet of times.

    The formatting is fairly simple and mainly for your own use but basically the main areas of development (i.e. the front end, my account or admin areas) use a grey background. The sub sections of these (i.e. Product management) use a yellow background and all other items have a white background, the main reason for this was when you have a large project it made it a lot easier to identify where you were. The top columns are not set but they’re just what we most commonly use, you can alter these as needed on the summary sheet.

    How to use it

    1. Add all your site elements (usually based on your sitemap) into the first column, separating each one out onto its own line.
    2. Go through each item, estimating the time required to complete the task. Remember that the spreadsheet is using decimal hours:
      • 0.02 = 1 minute
      • 0.08 = 5 minutes
      • 0.17 = 10 minutes
      • 0.25 = 15 minutes
      • 0.33 = 20 minutes
      • 0.42 = 25 minutes
      • 0.50 = 30 minutes
      • 0.58 = 35 minutes
      • 0.67 = 40 minutes
      • 0.75 = 45 minutes
      • 0.83 = 50 minutes
      • 0.92 = 55 minutes
      • 1.00 = 60 minutes (1 hour)
    3. Switch over to the summary page and update the hourly rates to your rates
    4. Et voila you have your project’s estimated cost :)

    You’ll be surprised how quickly project costs mount up when you use this method but it does ensure that you don’t get caught out, if it is still too costly for the client, why not show them the breakdown as it quantifies your efforts nearly. If that doesn’t work see how tweaking your hourly rate or removing the timings works out but don’t be a busy fool ;)

    Project time estimate spreadsheet

    # Tuesday, May 08, 2007

    Time on the phone –wasted time?

    Tuesday, May 08, 2007 6:13:32 AM (GMT Daylight Time, UTC+01:00)

    After a somewhat hectic week last week, with most of it being spent on the phone (which is becoming a more regular occurrence) I asked myself “has all this time on the phone been wasted time?” Well, I spent time talking to clients, developers, friends and family and this is important. Although it may cost you a little development time, talk is cheap (that’s what the telecom’s companies want to tell you isn’t it?)

    Rather than looking at it negatively I think it’s best to look at it from another point of view, I could have spent developing some weird and wonderful new creation for a client however, this phone time was doing something else –it was promoting my business. Admittedly the business couldn’t survive if we all spent all the time with the phone glued to our ear, but once in a while I believe is a good thing.

    Why am I looking at it like that? That’s simple, if you make time for your clients, friends and family in any context it shows that you care for them beyond a pay check and at the end of the day, if they need some development they’re more likely to think of you in a good light.

    What do you think? Do you feel time spent on the phone is wasted time or a business investment?

    # Friday, May 04, 2007

    Paddlathon 2007 -whassat then?

    Friday, May 04, 2007 7:56:27 AM (GMT Daylight Time, UTC+01:00)

    Ok, I promise to post something technical and interesting shortly (yes I know, that’ll be a first yada yada…) but I want to get some information up here about Paddlathon 2007. I’ve written a very quick site which I will be adding more information to shortly but it already has a lot of information about our charity canoe race and more importantly a donation form so once you’re done reading this pop over to www.paddlathon.co.uk and have a look.

    I wanted to compete in the Cheshire ring race 2007 for a few personal reasons but the initial motivation was that I missed out on taking part in the Transpennine race –this was stopped the first year I was old enough for my canoeing club to allow me to participate so ever since I’ve wanted to take part in a long race (preferably overnight etc) as I felt it would be fun so when I was handed a flyer for a 96 mile canoe race last season at Bristol I decided it was the perfect choice! There is another long race called Devizes to Westminster which is around 124miles at Easter –which didn’t leave enough time to train or find a partner.

    The Cheshire ring race is a 96 mile canoe race but at the end of June which meant more time to train and as it was nearer to summer it would also be warmer. Until a couple of seasons ago, I paddled with my canoe coach –and long term friend Paul Rose but sadly he damaged his back (thanks to me) going over a weir. He’s getting back into canoeing, but having vowed to paddle together again I suggested the Cheshire ring race as a worthy race.

    Paul was immediately up for it and once we had got chatting we thought it had enough of a “wow” factor to be worthy of sponsorship and so Paddlathon 2007 was conceived… a 96 mile canoe race is without a doubt a bloody long way and knowing he may still have issues with his back over that sort of distance we decided doing it as a relay race would be better so we decided to get my two brothers Sam and Pat on board as they’re both keen paddlers and are always up for a challenge.

    Originally we were going to raise money for a single charity but decided as there were four of us, it would be better to pool our collection efforts and raise for four charities together. The charities we’ve chosen are:

    • Samantha Dickson Brain Tumour Trust

      Samantha Dickson Brain Tumour Trust Logo
    • Multiple Sclerosis Society

      Multiple Sclerosis Society Logo
    • CLIC Sargent

      CLIC Sargent Logo
    • Mac Millan Nurses

      Mac Millan Nurses Logo

    To my knowledge, I’ve never asked for anything for the information I openly share on my blog –and I probably never will (beyond the Google AdSense that appears in the design that is) but I would very much appreciate it if you were generous enough to donate a couple of quid as there are some great charities who dearly need your help.

    I’ll post more information on the charities, the team and the boat over the forthcoming weeks but the race is June 30th – July 1st, if you fancy coming and seeing us off –or having a pint with us after the race that would be awesome.

    Read more or donate online at: www.paddlathon.co.uk

    # Wednesday, May 02, 2007

    A GREAT! New resource for freelancers and others starting out

    Wednesday, May 02, 2007 7:24:54 AM (GMT Daylight Time, UTC+01:00)

    I can’t recall how I came across FreelanceSwitch because it was one of those links you see on a mailing list, open to read later and forget to read until a couple of days/weeks later, but nevertheless FreelanceSwitch is well worth a read as they have a tonne of massively useful advice and they seem to be adding stacks more!

    Scott Wills also posted an interesting read on getting the price for your work right. This article on pricing your work, Scott briefly touches on how to set a base rate for your work but concentrates more on estimating your time etc so if you’re interested in calculating your price or calculating a base rate for your work, have a read of my article on pricing your work (see: Pricing Your Work) as I feel it covers calculating a base rate for your work in more detail. Scott's article can be found here: The Price is Right on FreelanceSwitch.

    FreelanceSwitch also gave my article on business start up advice a shout the other day which was most flattering –I hope I’ve managed to pick up a few additional readers! Hello if you're new :). You can read the list of other useful links and see mine at: Linkswitch -a roundup of great links across the web 3.

    The long and short of it is to keep an eye on the FreelanceSwitch website at: http://freelanceswitch.com/.

    # Thursday, April 19, 2007

    Getting more work done - Early Mornings vs. Late Nights

    Thursday, April 19, 2007 6:25:11 AM (GMT Daylight Time, UTC+01:00)

    If you’ve ever been involved with running your own business or indeed any start-up you’ll know long hours are sometimes a necessary evil to meet the demand or even just getting things in order. Well for quite some time now I’ve been wanting to work out whether it’s better to work early in the morning or late at night –I’m quite happy at working either but is there a better option.

    Recently I’ve needed to work long hours to get a couple of systems completed and get back on track with a couple of projects so decided there wouldn’t be a better time. I did want to do something clever like monitor the number of lines of code I write or something equally measurable but to be quite honest I didn’t have the time and I couldn’t be bothered to spend hours searching for a solution so it’s all finger in the wind stuff…

    Late Nights

    Firstly I tried late nights. As I mentioned in my business start-up guide (see: Business start-up advice) I’m very strict with getting up –I get up when Stacey does, see her off and then I’m in the office from around 7:30am/8am (please don’t call then –I like to have a little “quiet time” to sort things out ;)) and I work until she gets home –usually around 7pm now she’s in her new role. When doing the late nights I’d go in at around 7pm, have a drink and a chat, a bite to eat, perhaps all in all an hour or two’s rest before returning to the desk for a couple more hours.

    What I found with working into the night was that by the time I got back into the office I was already fairly tired from the day that had preceded (which a lot of the time is unpredictable as far as clients are concerned!) so my productivity for these additional 5/6 hours was lower than during the “normal” working day, then when I got up the next morning I would be pretty shattered from having little sleep (I still had to get up at 6:30am) which meant the next day was somewhat of a write off. So although I managed an additional 5 or 6 hours of lower productivity work, I also lost time the next day so it was semi-even.

    Early Mornings

    After testing working late for a couple of weeks I decided to try getting up early –initially I would get up at 5:30am as that would give me an hour or so before Stacey was awake, then 10mins waking her/refilling my tea and then another hour or so before breakfast and seeing Stacey off. I tried the 5:30am start a couple of times and could see the productivity difference almost straight away. As I was starting after a good nights rest (I could finish earlier and even get to bed earlier if I wanted!) I was fresh and ready to go again so I decided to start getting up at 5am, that way I could have nearly 4 hours of uninterrupted time before clients started calling.

    By getting up at 5am you avoid the jet lagged feeling at the end of the day, oddly enough this still comes at around the same sort of time so you don’t really lose out there and the 4 hours or so before other people make it into the office which means you get an additional 4 hours of uninterrupted time.

    The other advantage was if you had a deadline to meet you also had the evening available to work into –again at a fairly similar productivity level to when you get up at 6:30am.

    Conclusion

    Although I’ve not done any productivity level testing I know for sure that getting up in the mornings is far better without a shadow of a doubt, having the uninterrupted time where you’re fresh and alert means the development is a lot faster, unlike in the evening/night, no-one is online just “chilling” which a lot of the time can be distracting in itself, you’ve also got the added advantage of having a full nights sleep if required or working late into the night if you need to hit a deadline.

    Despite my findings I still know a lot of people that stay in the office late into the night thinking that it’s of benefit but one thing I found was not only was your productivity lower, your likelihood in making mistakes was higher –which you’d just have to correct the next day. A lot of the time they were simple things that had you been paying attention/been awake for you’d have sorted!
    Another thing I would like to look into at some point is whether morning or afternoon coding is more efficient and whether you can use that to structure your day better as from this “investigation” I’m inclined to do more adminy type work in the afternoon as I tire and leave the development to the morning (that is my 8 hour morning… ;))

    FWIW I really enjoy getting up before everyone else, watching the sun rise and then having an evening to go to the gym and have been getting up early now for a fair few weeks –and don’t see it changing anytime soon! I think any earlier than 5am however may well be detrimental.

    # Wednesday, April 11, 2007

    Rackspace -awesome managed dedicated servers

    Wednesday, April 11, 2007 12:59:46 PM (GMT Daylight Time, UTC+01:00)

    Seeing as I’ve had a number of posts recently that were, well, er slating/pointing out terrible customer service and/or service in general I thought it was about time I posted about the guys that did it right in my eyes (that and a couple of seriously cool programming things I’ve found/done –but those can wait!).

    If you read my recent post about Fasthosts and how they’ve been going down hill for the last year or so you’ll already know that we’ve signed up to one of the worlds greatest managed hosting companies ever –Rackspace. Not only that, we also recently became an official Rackspace partner which I’ll come back to in a moment.

    We got our first dedicated server with Rackspace nearly two years ago as part of a large project we had in the pipeline, although cost was a large factor in our decision, we took into account other aspects of the service such as how our enquiries were handled, the reputation of the hosting company throughout the development community etc. Rackspace although they were one of the more costly solutions for our requirements came off best all around. Even before we were signed up, Rackspace’s customer service was second to none, they were quite happy to discuss the more technical aspects of our requirements and even worked closely with us to identify the most suitable solution.

    One thing that I really liked about Rackspace before we signed up was the fact that they were very open and honest –where the sales person didn’t know the answer, they felt perfectly at ease to say so and pass you over to one of the technical support staff who always knew the answer. From my POV, not having someone “guessing” the answer is incredibly important –even more so when mission critical applications are being put in place.

    One thing that was very important to us when signing up was scalability, at the time, the requirement for the server was relatively low (the application was still in the pre-development stages but we knew we had to get a dedicated server in place before it got to the develop stages) so it was a risk that we needed to take but we also needed to limit the risk involved. Rackspace were able to offer the backbone (and supporting evidence) that we were looking for. They were quite happy letting us have a smaller solution to start with which could then easily be upgraded when we needed to –within a maximum of 24 hours notice!

    Another key factor was the on-going customer help and support, not having any real-world prior experience in managing a server I was adamant that whoever we hosted our server with had to also be able to offer us the technical support we would no-doubt be needing –not only with getting started but also looking to the future general day-to-day cock-up’s. Rackspace has a motto of “Fanatical support” which although many companies claim similar was clear they really believed in. Unlike many other hosting providers out there Rackspace had dedicated support specialists in the various aspects from Window Servers, Linux/Apache Servers to IMail specialists. This has saved our bacon on many an occasion. Although you may get through to someone who is specialised in another area, if they don’t know the answer you’re put through to the next available support member almost immediately. It certainly beats speaking to some spotty teenager who kinda knows what you mean when you talk about the web but is more interested in the Yankee dollar for a day of picking up the phone and pissing people off.

    Since signing up with Rackspace, having our dedicated server managed by Rackspace has been a dream. Like I’ve said, they are expensive but that cost is more than compensated by the complete lack of stress I have when dealing with them, the solution they recommended has met our needs perfectly so I’m pleased we’ve not been spending out unnecessarily. On top of this, Rackspace’s motto of “Fanatical support” is an understatement, their customer service and support is second to none without a shadow of a doubt. I’ve called them at some very odd hours and there has always been a friendly understanding voice at the other end… “that’s ok Tim, we can restore that folder you deleted before your client notices…” ;)

    In the two years I’ve been with them I’ve had three issues with the server:

    • A HDD failure –not sure what it was beyond that, IIRC it was just a dodgy disk (manufacturers fault). Rackspace notified me of the issue, replaced the HDD and ensured all the data etc was how it should be in the space of 15minutes! As the RAID setup meant the server continued to be operable while Rackspace were sorting the issue I wouldn’t have known if they hadn’t had called me.
    • Power loss for approximately 1hours. Shortly after our server was moved into a new data centre we lost all connectivity. When we called Rackspace about the issue we were told that a capacitor had blown between the server room and all power supplies. We later found out that they had used a new company to install the equipment and they hadn’t checked it all in as much detail as they perhaps should have done. At the time we only had a couple of sites on the server so I wasn’t too concerned about it but Rackspace refunded something like 10% of the entire month’s hosting bill for the inconvenience.
    • Failed firewall. This only happened the other day but the firewall died for some reason, at first they thought it was the PSU but on replacing that it still wasn’t rectified. All sites were down for about 40minutes while it was being sorted. Not great but unavoidable and at least they sounded genuinely concerned. I was even kept in the loop throughout and knew exactly what was going on –right down to “the tech is running to the storage area now to get the PSU… …now he’s running back” (I don’t think my comment of “Run forest RUUNNN” went down as well as I had hoped!).

    On top of those issues Rackspace have also helped us out on countless occasions where we weren’t quite sure if we were going about something the right way or we’d messed something up, I’ve only had to use the restore facility once IIRC but that was simple, within 20mins I had restored around 3GB of files to their state from the night before.

    Mainly through sheer laziness and not having a re-useable statistics package on the dedicated server (I don’t need it as we analyse the raw logs) until recently the majority of our web sites remained on a Fasthosts shared server account and seeing as a shared server account has many limitations in regards what you can do with your programming and the terrible customer service we’d been receiving we recently transferred the majority (not all) of our web sites away from Fasthosts onto our shiny Rackspace server.

    The transition was so simple and easy it was an absolute pleasure. You manage your DNS settings through their online portal which also has a very detailed and easy-to-use support ticketing system. Once setup in the portal you setup the domain on your server and away you go so I’m one happy bunny. They even helped install (unsupported) software for statistics analysis (without any additional charges) and helped me remove the quotas I had applied to the C: drive by accident. As if that wasn’t enough Rackspace even took the time to talk through some of the finer points of server management with me.

    What’s this about being a Rackspace partner? Well, you may think that my judgement is swayed by the fact that we were recently asked to be partners with Rackspace but I really wish I’d written about them before this because they are genuinely a superb company and I don’t want you to think that I’m just saying that for the commission (though that is an added bonus I must admit!). If you want unparalleled customer support and a managed hosting solution that really is there all the time for you then choose Rackspace –I’m yet to fault them (and having seen what it gets me, I can’t fault them on the price as it’s well worth it for the help and support they’ve offered me in the past).

    In many ways, Rackspace and the Rackspace support team are very much part of my team, I know they’re always there and unlike other people in my team are always happy to hear from me (at the start of the call at least!).

    Rackspace, Rackspace, Rackspace, oh how I love ye! If you’re thinking about setting up a server with Rackspace let me know and I’ll put you in contact with people that can help I definitely recommend Rackspace as your hosting partner even if it's just for an easier life :)

    Oh, and if all this wasn’t enough –they even send you a bunch of freebies for being a customer and a 12month congratulations certificate! –Cheesy I know but it’s the thought that counts! –and I use the free 256MB key they sent me as part of becoming a partner to store my blog posts on the go now* so thanks for that. Note to any supply company -I (and I think anyone else out there) LOVES free stuff so send it over... ;)

    *Yes I know I could have got several hundred 1GB disk keys for the price I pay on hosting but then I wouldn’t get to talk to the lovely support staff ;)

    # Friday, March 30, 2007

    Discounts on organic aromatherapy products including essential oils and more

    Friday, March 30, 2007 2:05:09 PM (GMT Daylight Time, UTC+01:00)

    I don't want to be seen to be using my blog as another way of pimping out my client's services to my lovely readers -I'm really not, it's just that I've been so busy recently I've not had a chance to finalize some of the content that I'm going to upload shortly. In the mean time though, if you're into aromatherapy -or more to the point organic aromatherapy check out Florame organic aromatherapy's special offers on all sorts of great items.

    Here's the email (there's no need to use a special offer code with this one)

    Hello and thank you for signing up to receive our newsletters which are designed to inform you of new and exciting changes at Florame - including our first ever sale - our Spring Sale

    Our Spring Sale begins today (Friday 30 March 2007). There are over 30 organic items on sale with discounts ranging from 25% to 50% including:

    However stocks are very limited and once they're gone, they're gone! 

    View all the items in our Spring Sale here

    Don't forget, if you've got loyalty points you can use these to buy your bargains and remember you'll collect more points for every purchase you make. 

    All orders over £30 (exc VAT) receive free shipping. 

    All orders made before noon will be shipped the same day (except weekends, when they'll be shipped the following Monday).

    We hope to welcome you to www.florame.co.uk soon and happy bargain hunting!  

    # Wednesday, March 21, 2007

    Simple accounting database

    Wednesday, March 21, 2007 8:27:16 AM (GMT Standard Time, UTC+00:00)

    As part of my mini-series on Business start-up advice I posted a simple accounting database (see: Finances (VAT, Accountants etc)) but today I realised I had just uploaded the mdb which won't be served by IIS so I just wanted to let you know I've uploaded it as a zip (incase you were one of the people that tried to download it).

    Example Microsoft Access Accounting Database (21KB)

    # Friday, March 16, 2007

    Payment on acounts

    Friday, March 16, 2007 1:28:52 PM (GMT Standard Time, UTC+00:00)

    I recently released a mini-series of articles with a load of great business start-up advice (also available to download as a PDF) in which I talk about how the government is really going the extra mile for SMEs at the moment, helping them out in a load of different ways -really trying to encourage entrepreneurship within the United Kingdom. This was something I believed until I got my tax bill.

    The deadline for your self-assessment tax return is fast approaching and the government kindly sends you an invoice for your last tax return, mine arrived just before Christmas and to my surprise it was 50% more than I submitted. Seeing as I was off to Cornwall I decided I would deal with it on my return.

    I've never had an issue with paying tax, in fact I've always been proud of the fact that I've needed to pay tax, my logic is simple: if I need to pay tax, it means I'm earning! The more tax I pay, the more I've earned. See my logic?

    In the past, through claiming back expenses etc my tax bills have always been relatively small and although I seem to recall something called “Payment on account”, but it was IIRC an optional payment so next year the amount you have to pay is smaller. This is a good idea. As a small business owner I do put money aside for my tax bill but that’s always been 25% of each invoice. So what’s my issue?

    To me, payment on account seems like a half-arsed attempt by the government to help self-employed people out, while getting a couple more quid in the process, the issue however is I feel they’ve focused more on taking more money than helping out the self-employed people. The idea is simple: You submit your tax bill for the previous tax year, they take an additional payment (payment on account) which will go towards the next tax year, this payment is estimated on their data for you -in this case your tax bill. The first payment is due with your current tax bill, the second in July of the current tax year. Thus splitting the next year’s tax bill into two more manageable payments. -Bollocks does it. Please excuse my French but this is not at all thought out and this is why:

    I would consider myself to be one of the more sensible self-employed people when it comes to saving for tax, admittedly the first couple of years I was in business I paid the tax bill with a project we had on at the time but now I do put money aside for it with every invoice (now 50% of every invoice inc VAT goes aside). So come tax return time I have a nice chunk of cash to pay for my tax bill (always more than it needs to be because of expenses etc). I then follow the governments recommendation and fill out my self-assessment tax return online in plenty of time -a word of warning, I live with a chartered accountant who helps me out with this, it’s not something I just do on my own ;). In January I have the invoice for the bill and I pay it out of my savings, anything left I can use as I wish. All good so far! As far as the government is concerned I have followed what they’re recommending and that should be it. Payment on account however throws this into turmoil. What the government IMHO neglects to tell you is that you’re going to have to pay 50% more than you’re expecting in the first year you go over their threshold.

    What I don’t like about that is they’re encouraging a lot of self-employed people to complete their own return online (best to do this with an accountant really) and save for their bill but by not telling you about this additional payment they can in theory put someone out of business over night -and there’s nothing you can do about it. Take the average self-employed business owner with a turnover of £50,000. Assuming no expenses you should expect to walk away with around £38,300 (using rough maths). Cool, so you’re good and put £11,700 into savings in preparation and use the rest to pay the bills, buy a holiday, a car etc.

    You think all’s dandy until at the end of the year you get a tax bill for £17,550 with a further payment of £5,850 being required in July. That leaves you with £26,600 remaining rather than the initial £38,300 you were expecting. Why? That’s simple -payment on account, the tax office say "Well, you earned £50,000 this year, so you’ll do that next year so we’ll take that money from you now, that way next year you’ll already have some money on account -helping you out. Don’t worry though, if your tax bill for next year is lower, we’ll refund the money." -there are so many issues to this statement but I’ll come back to those.

    I've made a graph demonstrating the two differences. The light red segment is the amount you will need to pay in the July following your January tax payment, the dark red section must be paid in addition to your main tax bill.

    Comparison between the expected tax bill and actual tax bill

    Take my industry -the IT industry. It’s not unknown (or an infrequent occurrence) to have a large project (i.e. £100,000) which you can complete within a financial year. If you're already working in the sector and this £100,000 contract is your reason for going it alone this could be a serious issue for you. Ignoring how you take this money, by the end of a single fiscal year you take £100,000:

    • Turnover:£100,000
    • Tax Allowance:£5,000
    • Taxable Income:£95,000
    • Tax at 22%:£7,700
    • Tax at 40%:£24,000
    • Expected Tax Bill:£31,700
    • Expected to you:£68,300

    In the event you’ve taken £100,000 for a project you’re likely to spend a fair amount of that on things like credit cards, niceties after having gone without for a while etc, so you spend a fair whack, perhaps put a chunk on your mortgage, buy a house or invest a fair chunk. Say you get the payment a couple of months before the tax year ends so you take the time off and relax a little, basically using a fair amount of the money, but you’re ok as you’ve put £32,000 into savings in preparation for your tax bill. When it comes to filing time however you’re told that you owe them an additional £15,850 with your current tax bill followed by another payment of £15,850 in July. Starting to see where my issue lies?

    If you didn’t spend anymore of that £68,300 than you absolutely had to and some how had the additional £31,700 available you’re fine, but what if you decided to treat someone special, or invest the money where it’s not readily accessible, what can you do? I called the tax office to talk it through with them as I didn’t want to pay this payment on account as it would mean that things would be a little tight until the end of a current system development. The representative had absolutely no concern or understanding for my situation, when I asked her if I could spread the payments a little I was told that interest would be charged on the money if I didn’t pay it and a fine would be incurred. Furthermore she told me that this payment on account was ok because it was tax on money we had already earned (the payment on account is in theory for the current fiscal year), I did think about pointing out that a business’ earnings are not the same as a worker’s salary as they are frequently sporadic and go through highs and lows -in the case of The Site Doctor, the majority of our year’s income comes in during the final fiscal quarter.

    There were a couple of things I didn’t like about the representatives statement/government’s perceived understanding of the situation:

    1. Great they are trying to help you out with your business -hopefully making the next tax year’s tax bill a smaller payment (or not at all if you think about the logic) but how does making it a forced payment without making it very well known about help?
    2. It assumes that your business’ monthly turnover is the same as an employee in that your entire year’s earnings are the same (or similar) each month with no seasonal fluctuations. I know there are some more established businesses which do have a regular income but The Site Doctor certainly doesn’t. As already mentioned, The Site Doctor has the majority of the year’s earnings paid in the final fiscal quarter -after you have to pay your tax bill!
    3. They say they’ll refund the money if your next bill is lower than the last so it’s ok. But taking the example of the £50,000 turnover above, that’s a years worth of interest on £11,700 you’ve just lost potential interest of £936 or £2,536 in the example of our £100,000 contract. Can you afford to loose out on that?
    4. This can in theory put someone out of business, as it happened, I had to pay this bill mid contract when normally I wouldn’t have had any money for a fair while, to make things worse Stacey was having a short sabbatical. Luckily we had the money in savings but if we didn’t we would have without a doubt found it hard to pay.

    The solution?

    I don’t like bitching and moaning about things without having some form of solution and I can understand that the government wants to get this cash into the bank and after the first year or two it makes things better for them but for goodness sake make the payment optional, perhaps offer a monthly payment option without penalties or at least inform people about this so they can make provisions for it. Had I not found this out before this tax year I would be in serious trouble. Of course, having a tax specialist do your books should have highlighted this for you -and it goes to show that just because they’re an accountant, if they’re not a specialist they may not know about something that can break the bank (I’ve got no blame for Stacey before you wonder!).

    Note: These figures are derived from my own experience so please take professional advice on the matter as for all I know, there may be a sliding scale (I would hope there is) otherwise the government is killing businesses left right and centre. I’d be interested to know if anyone else knew of/has experienced this issue.

    # Thursday, March 15, 2007

    When customer service goes mad

    Thursday, March 15, 2007 6:09:43 AM (GMT Standard Time, UTC+00:00)

    I rate good/great customer service very highly when it comes to retaining clients and obtaining new clients so it always make me laugh at how some companies value their customer service and more to the point wonder how they’re still in business!

    The other day I had a couple of conversations with Fasthosts that I simply had to share. A little background though –we’ve been with Fasthosts for a couple of years now, I think we originally signed up in 1999 through 4as1 and I know we were one of their first customers. Since then we’ve registered around 300 domains with their sister company UKReg without a problem.

    More recently however I’ve been feeling less easy about their service. Firstly they started charging for things left right and centre –ok, they’ve got a business to run, next they started to overload the servers (ok it’s a shared server, I can live with that), to combat the overloaded servers they started moving domains –I’m guessing higher demand sites onto their own boxes. That was ok, except they gave you no advanced warning and seeing as a fair few of the sites in question would reference MS Access databases elsewhere would cause us no-end of update fun.

    Then their support went down hill to the extent that we often had to wait for ages until the phone was answered (listening to “you are 17th in the queue”). At this point we had just opened an account with Rackspace so had the view to slowly move the domains over. That was until I got an email saying they would now be charging for a number of services that were historically free which cut into our margins –making them negative. That annoyed me somewhat so moving the sites away from Fasthosts was moved up my priority list.

    When we first signed up with Fasthosts they were the dogs, cheap hosting with all the bells and whistles –we had a Windows account which meant –unlike others at the time we had free use of ASP and all sorts but now all they seem interested in is the Yankee dollar rather than customer retention.

    The other day was the straw that broke the camels back in regards my tolerance of Fasthosts. I had two fairly simple questions and it wasn’t easy to get a straight response to either. The first related to a domain I was adding for a client, they don’t use it but have access to a personal control panel which allows them to manage their emails etc. The control panel although a little outdated does the job. The catch however is recently you need to pay for use of Fasthosts’ control panel or you can build your own through the API. I didn’t need half the stuff included in the “Standard Bundle” and only wanted Fasthosts’ personal control panel so thought it would be best to ask which package I needed:

    Conversation 1 – Fasthosts Personal Control Panels

    Massively long delay before a response finally comes

    Great! They’ve removed the control panels I highlighed (and only those ones!) but they were just the ones in the next month! In fairness, after a few more emails I did get the past invoices refunded as well as a fair few future ones taken off the account but it makes me very concerned as to who else is still paying this charge... I would never have questioned it as they did send a mailshot out saying they would now be charging for them etc. Most odd

    Conversation 2 – SQL Server Express

    As I’ve already mentioned, we’ve been with Fasthosts for around 8 years now (that’s at least £7k in the basic fees in case you’re interested) and for most of that we’ve had use of a shared SQL Server. When we signed up it was SQL Server 7 and although we’ve requested it nicely we’ve never been upgraded and so it resides on a very outdated machine to which we cannot connect using the new SQL Management studio.

    This shared SQL Server costs us £35pm and as we’ve only got 3 active clients using it, bringing in a total of £300pa I felt that is a slight waste of money so my plan was to use SQL Server Express in place (they’re relatively low traffic sites and MS Access was out of the question as they made use of various stored procedures).

    As you now have to pay extra for an ASP.Net account I thought I’d ask support to find out what the situation was...

    I felt that was direct and straight to the point, not asking anything too complicated to which one may expect a yes/no answer? Right?...

    Ok, I know sometimes I’m a little slow but “appropriate authentication method” that had me seriously confused, the only thing I could think was he was referring to Management Studio. Not only that I know for a fact that we’re on SQL Server 7…

    Ok, so perhaps my question wasn't clear enough, I thought that's what I asked, I thought (clearly incorrectly) that SQL Server Express was now released as a standard update through Microsoft updates -so they've disabled that. Perhaps I should have been a little clear in pointing out the fact that I HAVE a shared SQL Server account with them and that it was unsatisfactory but hey I thought they'd check what services we already had with them.

    Ok, so as this point you can tell I was slowly quickly loosing grip but this next one just finishes me off...

    Feel like you’re on a roundabout? I gave up and spent the weekend fast-forwarding my server transfer schedule.

    Ok, looking at those few emails perhaps it is a bit extreme to close down our account with them but this is a monthly occurrence, I would say all in all this set of emails took around 2 hours of my day which to me is time I could be billing a client so I think it’s justified.

    As it happens they did me a favour, by forcing my hand (or annoying me to the extent I did something about it) we're now finally on Rackspace and our sites are a lot more speedy :) Happy Days!

    When customer service goes mad
    Useful Links:  #  digg it!  del.icio.us  Technorati  email it!  Post CommentsComments [5]  Trackback LinkTrackback
    CategoriesTags: Business | Random | The Site Doctor
    # Friday, March 09, 2007

    Reporting errors from AJAX using the WebException Class

    Friday, March 09, 2007 7:57:18 AM (GMT Standard Time, UTC+00:00)

    I’ve been using Phil Whinstanley’s error reporting class1 within my applications for some time now and it really does help with diagnosing issues with the site’s during development (or client testing) but also alerting me to errors on live sites. I also like it because it can highlight hacking attempts and also spambot form submissions –allowing you to alter the site as needed. A lot of the time it also means we’re alerted to an issue with the site before the client has a chance to call.

    1 Note: I've been told the files Phil put online all those years ago are offline but don't panic, I'm posting another post with the relevant files shortly. If you don't want to use the search function (top right) or you're just keen, check out my comment within my post about ASP.Net WebException and Error Reporting useful code.

    I’m glad he developed it because before this was around I was using a very simple email alert system that didn’t contain even a third of what this one does. Historically in ASP we always reported 500-100 errors as I don’t like clients spotting issues before I do. It’s very important to include error reporting in your code otherwise you may miss a sequence of events that causes your client to loose out on a sale.

    Recently however we got in on the Atlas/AJAX scene pretty early on because we had a new application that would really benefit from a lack of postback and as it was an internal application only where we had complete control over the user’s environment, accessibility wasn’t so much of a concern (though FWIW you can still use the site in the same way without JavaScript activated).

    At present, our development server’s SMTP server isn’t working properly so I didn’t think anything of receiving no email when I threw an exception during the early stages of development but as soon as I threw it onto the live server I quickly noticed that I wasn’t receiving errors from the application (we’ve got a test page to ensure the error reporting is working as expected), on investigation I found that the errors were being caught by the Atlas/AJAX handler (in a similar way to a try/catch block) which meant no emails were being sent out –so what do you do?

    Note: Since I first started this article, Atlas has been released by Microsoft and is now AJAX and as part of the current release, Atlas/AJAX allows you to capture errors that are otherwise trapped by the framework and handle them as you like but for completeness I’ll overview things I tried.

    Firstly I tried simply bubbling the error up to the global.asax’s Application_Error event handler as I normally would but that won’t work as it will still be trapped by the Atlas/AJAX framework, further more, the error returned to the user isn’t very useful (it’s the text within the exception):

    Example standard Atlas/AJAX error - a pretty useless error message as far as the user is concerned!

    The next thing I tried was taking the exception and passing it to the WebException as you do within the Application_Error event handler, although this worked and for this project would have been an alright solution because the ScriptManager was contained within a single MasterPage, I wanted a solution that I could easily roll out to other projects.

    What I decided to do in the end was to wrap the WebException class and adding a single static method that takes an exception, then I replaced the code within the Global.asax and within the ScriptManager’s error event handler and responded to the user with a more informative message. The code below will output a user friendly message -still in a popup though you could redirect if desired. In the live application the user's location and a reference for the incoming error email is also shown to the user.

    Note: TSDGlobals is a settings class we use here, it just references the relevant setting and contains a set of useful methods that we use throughout most of our projects.

    aspx code

    <asp:ScriptManager runat="server" ID="sm" EnablePartialRendering="true" AllowCustomErrorsRedirect="true" OnAsyncPostBackError="atlasScriptManager_PageError"></asp:ScriptManager>

    codebehind

    protected void atlasScriptManager_PageError(object sender, AsyncPostBackErrorEventArgs e)
    {
        //A page reference for you (optional but useful)
        string __PageRef = "132";
        //Update the message the user will see
        sm.AsyncPostBackErrorMessage = String.Format("I'm sorry,  an error has occured, please contact us on 01234 567890. Quoting Page Ref: {0} - {1}", __PageRef, DateTime.Now.ToString());
        //Pass it through to the new Error Handler
        ErrorHandling.ErrorHandler.Handle(e.Exception);
    }

    global.asax

    void Application_Error(object sender, EventArgs e)
    {
        ErrorHandling.ErrorHandler.Handle(Server.GetLastError());
    }

    protected void Application_PreRequestHandlerExecute(Object sender, EventArgs e)
    {
        if (Context.Handler is IRequiresSessionState || Context.Handler is IReadOnlySessionState)
            ErrorReporting.SessionTracker.AddRequest("Pre Request Handler Execute"truetruefalse);
    }

    ErrorHandler.cs

    using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;

    namespace ErrorHandling
    {
        public class ErrorHandler
        {
            //Declare for the scope of the class
            private static HttpRequest context = HttpContext.Current.Request;

            public static void Handle(Exception currentError)
            {
                Handle(currentError, true);
            }

            public static void Handle(Exception currentError, bool redirectUser)
            {
                if (TSDGlobals.SendSiteErrors)
                {
                    #region Deal with 404's

                    //Redirect the user to a friendly page
                    if (CheckForErrorType(currentError, "FileNotFound") && redirectUser)
                        RedirectToFriendlyUrl(TSDGlobals.ErrorPage_PageNotFound);

                    #endregion
                    #region Deal with Spambots

                    //Check the error type
                    if (CheckForErrorType(currentError, "System.FormatException"))
                    {
                        if (context.Form.Count > 0)
                        {
                            foreach (string key in context.Form)
                            {
                                if (key.IndexOf("_VIEWSTATE") > 0 && context.Form[key].ToString().IndexOf("Content-Type") > 0)
                                    return;
                            }
                        }
                    }

                    #endregion

                    //Enable the trace for the duration of the error handling
                    TraceContext t = HttpContext.Current.Trace;
                    bool bCurrentState = t.IsEnabled;
                    t.IsEnabled = true;

                    #region Handle the Exception

                    WebException WE = new WebException();
                    WE.CurrentException = currentError;
                    WE.Site = context.Url.Host.ToString();
                    //Pull the information from the web.config here if desired
                    WE.FloodCount = 50;
                    WE.FloodMins = 5;

                    #endregion
                    #region Choose what you're interested in

                    WE.ReturnCache = true;
                    WE.DrillDownInCache = true;
                    WE.IncludeApplication = true;
                    WE.IncludeBrowser = true;
                    WE.IncludeEnvironmentVariables = true;
                    WE.IncludeForm = true;
                    WE.IncludeProcess = true;
                    WE.IncludeQueryString = true;
                    WE.IncludeRequestCookies = true;
                    WE.IncludeRequestHeader = true;
                    WE.IncludeResponseCookies = true;
                    WE.IncludeServerVariables = true;
                    WE.IncludeSession = true;
                    WE.IncludeTrace = true;
                    WE.IncludeVersions = true;
                    WE.IncludeAuthentication = true;

                    #endregion

                    WE.Handle();

                    //Return the trace to its original state
                    t.IsEnabled = bCurrentState;

                    //Redirect the user to a friendly page
                    if (redirectUser)
                        RedirectToFriendlyUrl(TSDGlobals.ErrorPage_CodeIssue);
                }
            }

            private static bool CheckForErrorType(Exception ex, string errorText)
            {
                if (ex != null)
                {
                    //Check the exception
                    if (ex.GetType().ToString().IndexOf(errorText) > 0)
                        return true;
                    else
                        return CheckForErrorType(ex.InnerException, errorText);
                }
                else
                {
                    return false;
                }
            }

            private static void RedirectToFriendlyUrl(string Url)
            {
                //Only redirect the user if the URL is not empty and we're not on a dev machine
                //TODO: Check the referrer to ensure we don't redirect the user to the page causing the error!
                //TODO: Pull the list of development server addresses from an XML file
                if (!String.IsNullOrEmpty(Url) && (context.Url.Host.IndexOf("localhost") < 0))
                    HttpContext.Current.Response.Redirect(Url);
            }
        }
    }

    I’m not sure if this is a recommended way of doing it but it works pretty well and in my case, the majority of settings from the code are the same regardless of the project but you can still alter those if required –as they’re not likely to change project-project I’ve kept the settings within the web.config. I decided to wrap Phil’s code in my own because that way if he ever releases an update (not sure what that’d do tbh) I could just drop the new WebException code into my project and be ready to go straight away.

    What do you think Phil? Use or Abuse of your code ;)

    # Wednesday, March 07, 2007

    First thoughts on the BlackBerry Pearl

    Wednesday, March 07, 2007 11:30:48 AM (GMT Standard Time, UTC+00:00)
    The BlackBerry Pearl -the next generation in BlackBerrys

    I’ve always been adverse to getting a BlackBerry for a few of reasons:

    1. I don’t get away from work much as it is so I felt having emails on my BlackBerry on the go all the time would be one step too far.
    2. The size of the BlackBerry –they’re ridiculous, I like my phone to be as small as possible so it interferes with my life as little as possible.
    3. I’ve heard horror stories about the increase in bandwidths to manage the email push.

    Then while we were looking at new contracts over Christmas Stacey picked up the BlackBerry Pearl which was small and sleek and suggested I gave it a go. As she didn’t want to change from her V3 we agreed I’d give it a go for a month and if I didn’t like it I’d have her free upgrade (a Sony Ericsson w810i).

    I’ve had the BlackBerry Pearl for well over a month now so I thought I’d share my findings in case anyone else is thinking of getting one.

    How does the BlackBerry “work”?

    There are plenty of tutorials for the BlackBerry and far more advanced information on how the BlackBerry actually works but I thought it may be worth over viewing how it’s configured and the basic concepts.

    BlackBerrys use something called “Push” Technology to retrieve emails, your email client (Outlook, Eudora, Thunderbird etc) classically collects email from a server by contacting the server and getting a list of emails and then downloading the emails. BlackBerrys on the other hand have the email sent to it from the server.

    When you first get your BlackBerry you have to configure your email accounts with your BlackBerry’s ISP (in my case O2), you supply them with server details for your mail account (POP3 settings). Your ISP will then periodically check your email account and collect the new email messages which are then encrypted and sent (or pushed) to your BlackBerry (in a similar way to an SMS message). The BlackBerry then decrypts the email and allows you to read it. Simple eh :)

    My thoughts on the BlackBerry Pearl

    Things I like about the BlackBerry Pearl:

    • It’s size –it’s no larger than a lot of the other phones out there at the moment, in fact it’s smaller than my old Motorola V3 while it was closed (though it’s about 5mm longer)
    • It’s synchronisation with Outlook. I used to have a Palm LifeDrive to manage my calander, address book and tasks etc and a separate address book on my V3 which didn’t sync correctly with Outlook so the three were nearly always different –that and I hated having to carry around the LifeDrive as it was just extra bulk... The BlackBerry Pearl however seamlessly manages it all which has meant that I’ve started managing my to-do list a lot more efficiently as well as my address book.
    • The size and clarity of the screen.
    • Today Plus theme –an extra download but well worth it as it summarises all the info you need to know at a glance on the home screen.
    • Battery life –quoted at around 8½ hours talk time I’m certainly getting at least this. A lot of the time I plug it in via USB while I’m working which charges it but I’ve had a couple of weekends away recently which has meant it’s not got charged and it happily coped with the (for me) heavy use without an issue.
    • The complete call log of all incoming and out going calls on a user basis –this is great for me if I need to know how long I spent speaking to a client etc (I tend to use my mobile for most outgoing calls as they’re all free ;)).
    • The degree of customisation (though this is also a downside as it is somewhat complicated).
    • The fact you can customise what the side buttons do.
    • The standby button –why it has a keylock I don’t know as it gets in the way of the standby button.
    • The voice dialler –that’s awesome.
    • VoiceRecorder+ (a voice memo recorder for the BlackBerry Pearl from ShapeServiceswww.shapeservices.com)
    • The fact you can add delays into the number dialling to quickly and automatically navigate the IVR options for systems you regularly use.

    Things I dislike about the BlackBerry Pearl:

    • It’s pretty complicated. Unlike most phones these days each application has it’s own settings and finding where they are is sometimes a real PITA.
    • You can’t set ringing profiles to activate at certain times of the day.
    • You can’t send SMS messages from it through your computer.
    • It doesn’t ring and vibrate at the same time.
    • The ringer is a little quiet at times (though people suggest drilling holes in the back of the casing sorts this).
    • The key lock which sometimes gets in the way of taking the phone out of standby –I expect there’s a way of turning it off but I’ve not found it yet.

    All in all I think the BlackBerry Pearl is a superb phone and I’ll certainly be keeping it. I’ve setup a filter to ensure I don’t get spam coming through on it but I still get between 10 and 50 emails a day on it, the data transfer is still low (it’s still under 100KB) but I don’t surf the web etc.

    O2 offer a deal at the moment where you can have unlimited data for £10pm on top of your bill, my thinking is if I start to use more than £10 of data a month I’ll upgrade but atm it’s all good. In regards the additional load on our mail server I’ve not noticed anything significant but I’ll analyse this in a couple of months as the calls should be clear. To avoid spam emails I’ve setup a separate mail account that the O2 server collects from, then from my main email accounts I forward any that are sent directly to me and without my spam filter’s headers added to my GMail account which then filters pretty much everything else missed by my server’s filter before forwarding it onto my BlackBerry account. I realise this is a slightly long winded method of managing it but it has meant that 99.9% of all spam has been ignored. There have been a couple of emails missed (i.e. where I’ve been CC’d) but I can live without having those on the go ;)

    I had an issue when I first got the BlackBerry Pearl that all numbers would be dialled with the prefix of +44 and the leading 0. As it happens, the fix is pretty simple:

    1. Open the call log
    2. Press the menu key (the BlackBerry icon)
    3. Choose “General Options”
    4. Choose “Smart Dialing”
    5. Change the country code to +44
    # Tuesday, February 27, 2007

    Employing someone 101

    Tuesday, February 27, 2007 9:22:48 AM (GMT Standard Time, UTC+00:00)

    Stacey recently wrote an excellent brief on the pro's and con's of employing someone however this morning when I came to post it online I realised that it was deleted when I formatted the laptop for a system demonstration last week. Luckily however I have a hard copy so I'll have it re-typed and put online ASAP.

    In the meantime however I shall reflect with this classic (which I’m looking to implement in The Site Doctor ASAP)…

    Attire

    It is advised that you come to work dressed according to your salary. If we see you wearing Prada sneakers and carrying a Gucci bag, we assume you are doing well financially and therefore you do not need a raise.

    If you dress poorly, you need to learn to manage your money better, and therefore you do not need a raise. If you dress in-between, you are right where you need to be and therefore you do not need a raise.

    Personal Days

    Each employee will receive 104 personal days a year. They are called Saturday and Sunday.

    Lunch Break

    Skinny people get 30 minutes for lunch as they need to eat more so that they can look healthy.

    Normal size people get 15 minutes for lunch to g et a balanced meal to maintain their average figure.

    Sick Days

    We will no longer accept a doctor statement as proof of sickness. If you are able to go to the doctor, you are able to come to work.

    Restroom Use

    Entirely too much time is being spent in the restroom. There is now a strict 3-minute time limit in the stalls. At the end of three minutes, an alarm will sound, the toilet paper roll will retract, the stall door will open and a picture will be taken. After your second offence, your picture will be posted on the company bulletin board under the "Chronic Offenders" category.

    Surgery

    As long as you are an employee here, you need all your organs. You should not consider removing anything. We hired you intact. To have something removed constitutes a breach of employment.

    Thank you for your loyalty to our company. We are here to provide a positive employment experience. Therefore, all questions, comments, concerns, complaints, frustrations, irritations, aggravations, insinuations, allegations, accusations, contemplation, consternation and input should be directed to the State Unemployment Offices.

    Employing someone 101
    Useful Links:  #  digg it!  del.icio.us  Technorati  email it!  Post CommentsComments [0]  Trackback LinkTrackback
    CategoriesTags: Fun and Games | The Site Doctor
    # Saturday, February 24, 2007

    DasBlog RSS Feed Macro

    Saturday, February 24, 2007 2:39:04 PM (GMT Standard Time, UTC+00:00)

    As part of my blog’s re-design I wanted to integrate my statistics from Last.FM which monitors what music you’re listening to and generates a stack of statistics about your listening habit (see About Last FM for more information).

    Anyways, I started writing my own RSS macro when I came across one already developed by John Forsythe (http://www.jforsythe.com/) which did pretty much exactly what I was planning on developing, the only difference though was that his was hard-coded to preset node names whereas I was planning on using an XSL file to format mine to offer maximum flexibility in the long run so I updated his with the use of reflector (thanks to John Forsythe though!!).

    There are a couple of difference to note with this code and John Forsythe's:

    • The RSS retrieval is no longer handled by an external library -in this instance I wanted to keep this as simple and stand-alone as possible.
    • There is no max item count at present -this is mainly because I didn't need it for the Last.FM Feed, I may alter that later.

    Source code for a dasBlog XSL based RSS reader

    using System;
    using System.IO;
    using System.Security.Cryptography;
    using System.Diagnostics;
    using System.Text;
    using System.Web;
    using System.Web.UI;

    using newtelligence.DasBlog.Runtime;
    using newtelligence.DasBlog.Web.Core;

    namespace TSDMacros
    {
        public class TheSiteDoctor
        {
            protected SharedBasePage requestPage;
            protected Entry currentEntry;

            public TheSiteDoctor(SharedBasePage page, Entry entry)
            {
                requestPage = page;
                currentEntry = entry;
            }

            /// <summary>
            /// A dasBlog macro to retrieve an RSS feed and apply XSL to 
            /// it before caching it for x minutes
            /// </summary>
            /// <param name="xslVPath">The virtual path of the XSL file</param>
            /// <param name="rssPath">The RSS feed URL</param>
            /// <param name="minutesToCache">Number of minutes to cache the file for</param>
            /// <param name="debugMode">Output the debug information</param>
            /// <returns>A control that can be inserted into a dasBlog template</returns>
            public virtual Control GetRSS(string xslVPath, string rssPath, int minutesToCache, bool debugMode)
            {
                string cacheVDir = "./content/getrsscache/";
                string cachedFileLoc = String.Empty;
                StringBuilder output = new StringBuilder();

                bool writeToCache = false;
                bool cacheExpired = false;
                bool cacheExists = false;

                #region Debug output
                if (debugMode)
                {
                    output.Append("<strong>&lt;start debug&gt;</strong><hr />\r\n");
                    output.AppendFormat("<i>RssPath</i>: {0}<br />\r\n", rssPath);
                    output.AppendFormat("<i>minutesToCache</i>: {0}<br />\r\n", minutesToCache);
                    output.AppendFormat("<i>CacheStorageFolder</i>: {0}<br />\r\n", cacheVDir);
                    output.Append("<hr />\r\n");
                }
                #endregion

                #region Check whether we need to cache or not
                if (minutesToCache > 0)
                {
                    writeToCache = true;
                    //Find the cache directory
                    string cacheDir = HttpContext.Current.Server.MapPath(cacheVDir);
                    //Work out what the file would be called based on the RSS URL
                    cachedFileLoc = Path.Combine(cacheDir, HttpUtility.UrlEncode(TheSiteDoctor.GetMd5Sum(rssPath)) + ".cache");
                    #region Debug output
                    if (debugMode)
                    {
                        output.AppendFormat("<i>cache file</i>: {0}\r\n", cachedFileLoc);
                    }
                    #endregion
                    if (!File.Exists(cachedFileLoc))
                    {
                        cacheExpired = true;
                        #region Debug output
                        if (debugMode)
                        {
                            output.Append("<i>cache age</i>: no file exists<br />");
                        }
                        #endregion
                    }
                    else
                    {
                        FileInfo info1 = new FileInfo(cachedFileLoc);
                        TimeSpan span1 = (TimeSpan)(DateTime.Now - info1.LastWriteTime);
                        if (span1.TotalMinutes > minutesToCache)
                        {
                            cacheExists = true;
                            cacheExpired = true;
                        }
                        #region Debug output
                        if (debugMode)
                        {
                            output.AppendFormat("<i>cache age</i>: : {0} min old <br />\r\n", span1.TotalMinutes);
                        }
                        #endregion
                    }
                }
                else
                {
                    #region Debug output
                    if (debugMode)
                    {
                        output.Append("<strong>caching disabled - CacheStorageAgeLimit=0</strong><br /><span style=\"color:red; font-weight: bold;\">FYI: All requests to this page will cause a new server request to the RssPath</span><br />");
                    }
                    #endregion
                    cacheExpired = true;
                }

                #endregion

                #region Debug output
                if (debugMode)
                {
                    output.Append("<hr />");
                }
                #endregion
                //Check whether or not the cache has expired
                if (cacheExpired)
                {
                    #region Debug output
                    if (cacheExists & debugMode)
                    {
                        output.Append("<strong>file cache is expired, getting a new copy right now</strong><br />");
                    }
                    else if (debugMode)
                    {
                        output.Append("<strong>no cache, getting file</strong><br />");
                    }
                    #endregion
                    //The cache has expired so retrieve a new copy
                    output.Append(TheSiteDoctor.delegateRss(xslVPath, rssPath, 0, writeToCache, cachedFileLoc, debugMode));
                }
                else
                {
                    #region Debug output
                    if (debugMode)
                    {
                        output.Append("<strong>cool, we got the file from cache</strong><br />");
                    }
                    #endregion
                    //The cache still exists and is valid
                    StreamReader reader1 = File.OpenText(cachedFileLoc);
                    output.Append(reader1.ReadToEnd());
                    reader1.Close();
                }
                #region Debug output
                if (debugMode)
                {
                    output.Append("<hr /><strong>&lt;end debug&gt;</strong>");
                }
                #endregion

                output.Append("\r\n<!-- \r\ndasBlog RSS feed produced using the macro from Tim Gaunt\r\nhttp://blogs.thesitedoctor.co.uk/tim/\r\n-->");

                return new LiteralControl(output.ToString());
            }

            /// <summary>
            /// RSS feed retrieval worker method. Retrieves the RSS feed 
            /// and applies the specified XSL document to it before caching 
            /// a copy to the disk -this should be called after it has been 
            /// established the cache is out of date.
            /// </summary>
            /// <param name="xslVPath">The virtual path of the XSL file</param>
            /// <param name="rssPath">The RSS feed URL</param>
            /// <param name="timeoutSeconds">Number of seconds before the request should timeout</param>
            /// <param name="writeCache">Whether to cache a copy on disk</param>
            /// <param name="xmlPath">Physical path of the XML file on the disk</param>
            /// <param name="debugMode">Output the debug information</param>
            /// <returns>An XML document as a string</returns>
            private static string delegateRss(string xslVPath, string rssPath, int timeoutSeconds, bool writeCache, string xmlPath, bool debugMode)
            {
                StringBuilder output = new StringBuilder();
                bool errorThrown = false;
                string cacheVDir = "./content/getrsscache/";
                string xslPath = HttpContext.Current.Server.MapPath(xslVPath);

                try
                {
                    //TODO: Replace this with a HttpRequest and timeout to ensure the visitor is not left waiting for the file to load
                    //Load the XML
                    System.Xml.XmlDocument xmlDoc = new System.Xml.XmlDocument();
                    xmlDoc.Load(rssPath);

                    //Load the XSL
                    System.Xml.Xsl.XslTransform xslDoc = new System.Xml.Xsl.XslTransform();
                    xslDoc.Load(xslPath);
                    
                    StringBuilder sb = new StringBuilder();
                    StringWriter sw = new StringWriter(sb);

                    //Apply the XSL to the XML document
                    xslDoc.Transform(xmlDoc, null, sw);

                    //Append the resulting code to the output file
                    output.Append(sb.ToString());
                }
                catch (Exception ex)
                {
                    errorThrown = true;
                    #region Debug output
                    if (debugMode)
                    {
                        //Log the exception to the dasBlog exception handler
                        ErrorTrace.Trace(TraceLevel.Error, ex);
                        output.AppendFormat("<ul style=\"\"><li><strong>RSS request failed :(</strong> <br />{0}</li></ul>", ex.ToString());
                    }
                    #endregion
                }

                //Save a cache of the returned RSS feed if no errors occured
                if (writeCache & !errorThrown)
                {
                    //Find the cache's storage directory
                    DirectoryInfo dir = new DirectoryInfo(HttpContext.Current.Server.MapPath(cacheVDir));
                    //Check it exists
                    if (!dir.Exists)
                    {
                        dir.Create();
                        #region Debug output
                        if (debugMode)
                        {
                            output.AppendFormat("<strong>just created the directory:</strong> {0}<br />"HttpContext.Current.Server.MapPath(cacheVDir));
                        }
                        #endregion
                    }
                    //Create the file
                    StreamWriter writer1 = File.CreateText(xmlPath);
                    writer1.Write(output);
                    writer1.Flush();
                    writer1.Close();
                    #region Debug output
                    if (debugMode)
                    {
                        output.Append("<strong>just wrote the new cache file</strong><br />");
                    }
                    #endregion
                }

                return output.ToString();
            }

            /// <summary>
            /// Worker method to identify the MD5 checksum of a string
            /// in this instance used to ensure the RSS file isn't already
            /// cached (based on the URL supplied)
            /// </summary>
            /// <param name="str"></param>
            /// <returns></returns>
            public static string GetMd5Sum(string str)
            {
                Encoder encoder1 = Encoding.Unicode.GetEncoder();
                byte[] buffer1 = new byte[str.Length * 2];
                encoder1.GetBytes(str.ToCharArray(), 0, str.Length, buffer1, 0true);
                byte[] buffer2 = new MD5CryptoServiceProvider().ComputeHash(buffer1);
                StringBuilder builder1 = new StringBuilder();
                for (int minsToCache = 0; minsToCache < buffer2.Length; minsToCache++)
                {
                    builder1.Append(buffer2[minsToCache].ToString("X2"));
                }
                return builder1.ToString();
            }

        }
    }

    XSL that I use for Last.FM

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
      <xsl:output method="html" /> 
      <xsl:template match="/">
        <h2>Recent Tracks</h2>
        <ul>
        <xsl:for-each select="recenttracks/track">
            <li>
                <a href="{url}">
                    <xsl:value-of select="artist" /> - <em><xsl:value-of disable-output-escaping="yes" select="name" /></em>
                </a>
            </li>
        </xsl:for-each>
        </ul>
        <p><a href="About-Last-FM.aspx" title="last.fm - The Social Music Revolution"><img alt="last.fm - The Social Music Revolution" src="images/lastfm_mini_black.gif" /></a></p>
      </xsl:template>
    </xsl:stylesheet>

    To use it on the blog template

    <% GetRSS("LastFM.xsl", "http://ws.audioscrobbler.com/1.0/user/timgaunt/recenttracks.xml", 25, false)|tsd %>

    This is a pretty crude way of doing it IMHO because the XSL transforms the stream directly, eventually I’ll update the code so it includes a timeout (as John’s did) and having seen the performance implications on my blog, make sure the request is made asynchronously.

    FWIW I have set my cache value to 25minutes, I did have it as 1min for fun but it killed the blog, why have I set it to 25mins? Well, most of my tracks I would think are 2-3minutes long, as I list 10 tracks at a time that’s 20-30minutes listening time so it’ll still keep a fairly accurate overview of my tracks without having massive performance issues on my blog :)

    Incase you don't want to or know how to create this macro as a DLL I have created it for you :)

    dasBlog RSS feed macro" onclick="javascript:urchinTracker('/download/zip/TSDMacros_v1_23-02-07');" href="/tim/files/TSDMacros_v1_23-02-07.zip">Download the complete dasBlog RSS feed macro (4KB - MD5 Hash: e3d7d6320109fd07259e8d246b754f13)

    DasBlog RSS Feed Macro
    Useful Links:  #  digg it!  del.icio.us  Technorati  email it!  Post CommentsComments [2]  Trackback LinkTrackback
    CategoriesTags: ASP.Net | dasBlog | The Site Doctor | Web Development
    # Friday, February 16, 2007

    Business start up advice downloadable PDF

    Friday, February 16, 2007 6:54:35 AM (GMT Standard Time, UTC+00:00)

    I’m still somewhat shocked at how well the series on business start up advice was received, I was expecting one or two hits on it but so far I’ve had over 1,000 visits to the article which is pretty shocking as this blog in its entirety was only getting that a year(ish)! I’ve also had some fantastic feedback which is very touching so those of you who have got in touch thanks!

    Ok, following the posting of my recent business start up advice mini series I was asked by a number of people to post it as a PDF which I’ve finally managed to do. It’s rather long I’m afraid weighing in at around 26 pages so it should keep you busy giving me time to write the additional articles!

    Download the PDF version of the complete business start up advice article here (27 printed pages including a 1 page feedback form - 189KB).

    # Thursday, February 08, 2007

    The Behemoth has arrived

    Thursday, February 08, 2007 6:14:19 PM (GMT Standard Time, UTC+00:00)

    Quite why I’m posting about my new mug I don’t know but hey why not –it’s all good for a laugh!

    Basically Stacey got me a new mug for Christmas and it’s put my last ones (largest “old” mug was ½ liter) to shame so much that I just had to write about it! This mug is awesome, I can make a cup of tea in the morning before I go into the office and it’ll keep me going until at least mid-morning.

    • The mug from the front
    • The mug from the above
    • Comparison of new and old from the front
    • Comparison of new and old from above

    The stats

    Height
    14cm
    Diameter
    12.5cm
    Circumference
    39cm
    Capacity
    1.2 Liters
    Teabags per brew
    2
    Time to drink
    15mins+

    As usual, this post is more just about fun than anything else ;)

    The Behemoth has arrived
    Useful Links:  #  digg it!  del.icio.us  Technorati  email it!  Post CommentsComments [0]  Trackback LinkTrackback
    CategoriesTags: Fun and Games | Random | The Site Doctor
    # Tuesday, February 06, 2007

    WebDD -I was there, were you?

    Tuesday, February 06, 2007 12:00:26 PM (GMT Standard Time, UTC+00:00)

    What an awesome event, I was originally in two minds about going to the latest conference installment from Phil Winstanley, Dave Sussman (and all the other dedicated people involved with the other DDD events) but boy am I glad I went.

    This time I decided to take it to the next level and rather than driving down and back on the day I’d drive down the night before with Stacey and stay over in a local hotel. This worked really well, not only did it mean I was awake for all of the seminars but I could get some work down the next day too ;)

    Anyhow, back to the day, for once I had the foresight to choose the seminars I was going to attend before I arrived and decided not to attend all of Scott Guthrie’s talks mainly because of the following I knew he’d have but also because of the great alternatives available so here’s my breakdown of who I went to see and what I thought of their talk:

    Microformats - HTML to API (Glenn Jones)

    Read Glenn Jones' blog post about the day

    GlenN Jones (not Glen Jones as was listed in the schedule ;)) presented a very interesting talk on microformats, it’s not quite what I first thought it was (for some reason I thought it was some form of HTML applets but lets not go there!). Microformats are certainly something I’m going to look into in the future but as Julian Voelcker has pointed out quite how practical they are to use in a CMS situation I’m not sure.

    I think from an SEO point of view and also from an information sharing POV they’re very interesting and I’ll certainly be integrating them into various sites for testing purposes sooner rather than later (in fact if you check out my about me page they’ll be there with the new update coming soon … now I just need to re-work my tag output* using IISMods' URLRewrite).

    *Glenn pointed out that  when using the rel=”tag” attribute the last “word” in the associated URL should be the tag itself -something I didn’t know but will be sorted as atm it’s along the lines of “CategoryView,category,Business,Business%20Start-up%20Advice.aspx” etc which isn’t very useful.

    I think in principle microformats are a good idea for something like a blog or a semi-static site where the developer (or someone with knowledge of microformats) has control over the content but how you could role them out in a client managed site is a little more complicated and something that will need some more thought -do you offer buttons to insert the code markup for them? Can you offer nested content easily etc.

    The other thing about them I’m not too sure about is (miss)use of the abbr tag -again that was only something I picked up in the talk so may have missed the point, I’ll need to look into it further.

    Either way it was an interesting insight into a new concept that I’m going to support if I can :). Check out the main microformats site at: www.microformats.org

    Glenn Jones is also the developer behind the back network site that was used to link all the delegates together, it’s an interesting concept that once again promotes a social network on the internet which is all the rage at the moment but also allows you to interact with other delegates before the event -this is something I’d have done had I had more time before the event!

    Download the slides to the Microformats - HTML to API talk by Glenn Jones

    Web Accessibility: What, Why, How, and Who Cares? (Bruce Lawson)

    Read Bruce Lawson's blog post about the day

    Making web sites accessible is something I’ve been interested in pretty much since I got involved with ASP.Net 1.1 and I get endlessly tired of hearing fellow ASP.Net developers complain that you can’t make web sites accessible using the ASP.Net platform -balls can’t you, ok it’s not something that comes out of the box and at times is a little awkward but a lot of it is just common sense and consideration.

    Bruce Lawson’s talk was a breath of fresh air, it was great to see someone having the courage that I’m yet to muster (well, more the time but hey) to convince my fellow developers to make their sites accessible.

    Why the hell shouldn’t your site be accessible to all? It’s not all about money, in my mind it’s just about being fair to others -following (as ever) Google’s moto of don’t be evil. I liked Bruce’s method of presentation as it was far more personal than the usual “you should care because it’s the law” or “you should care because you’re missing out on a ton of money”, when asking the question “who cares?” -using his words not mine- he said “rather than quoting facts and figures at you trying to convince you, -my mate Theresa does”. I think this in itself was a different method of engaging the audience and I certainly felt it worked.

    The talk wasn’t particularly in depth (which baring in mind the audience I expected) but I felt it was enough to plant the seed of interest with those that weren’t otherwise that aware or interested about accessibility. I hope that they’ll now actively encourage fellow developers to take action -not necessarily by redeveloping their past sites as many clients can’t afford this, but by giving some consideration to accessibility in future designs -i.e. DON’T use buttons for menu systems!

    I can’t hand on heart say all our sites are overly accessible but I’m learning and I feel each new site we’re involved in is that little bit more accessible. Bruce did share a very useful site called “Blind Webbers” where you can get in contact with screen reader users -I’ll certainly be checking that out with the new design for The Site Doctor, for others interested Bruce sent me the link: http://www.webaim.org/discussion/mail_message.php?id=9019. I’m thinking I’ll see what they think of Miss Mays adult store -could be a good introduction!!

    The point that made me laugh the most was his demonstration of using “Click Here” as link text, his demo was simple but effective -you can check it out on his site: http://www.brucelawson.co.uk/index.php/2007/webdd-conference-slides-and-questions

    One thing I do need to think about is the order of elements on the page, i.e. at present this blog layout has the menu appearing before the content -mainly because that was the quickest way I could get the layout sorted, but I think I need to re-order it so the menu comes last -that said I do have a “Skip to content” link at the top -how effective it is I’ll let you know. Another thing I also want to pass by Bruce is image replacement techniques as I’ve tried a few now and I’d be interested to see how they perform on screen readers and the like.

    Download the slides for the Web Accessibility: What, Why, How, and Who Cares? talk by Bruce Lawson

    Quick and dirty Usability tests - one week, no budget, and no usability facility (Zhivko Dimitrov)

    Read Zhivko Dimitrov's blog post about the day

    Again, interested in making my sites as user friendly as possible I thought that this would be an interesting talk but it wasn’t quite as it was portrayed -instead he went into how they perform remote usability tests with a budget. None the less it was a fairly interesting talk.

    Zhivko is from Telerik and clearly has a fair amount of experience in usability testing, I was hoping he’d have some good ideas on how to offer usability testing on no budget but sadly he didn’t. There were a couple of interesting points raised however that I don’t think I would have thought of -firstly the re-use of testers, if you use a tester more than twice within a year they’ll start to know what you want them to say rather than what’s there. The other point raised was if you’re using remote testing, you loose the non-vocal indicators of frustration such as a furrowed brow or someone scratching their head.

    Zhivko’s opening demo however was a recording of a guy trying to find a grid component on their competitors site, despite the fact they spent a fair amount of time laughing at the guy in the background I thought this was a great example of a poorly designed site and how important it is to highlight your site’s calls-to-action which is something that I’ll have to remember while optimizing our newest SEO client for online poker The Rivercard -one of the issues we have already highlighted is that many of their download links are below the fold of the screen which reduces the chance the user will click the link.

    Download the slides from the Quick and dirty Usability tests - one week, no budget, and no usability facility talk by Zhivko Dimitrov

    Connecting Design to Real Business Value (Brandon Schauer)

    Visit Brandon Schauer's blog

    As with Zhivko’s talk, this was another talk that wasn’t quite as it was portrayed by the title, but I was pleasantly surprised by the content. Brandon Schauer’s talk was more about business modeling and how analyzing the current business method can be improved with a little thinking (and design) -ok that’s obvious ;) but his methods were nice.

    I found the talk incredibly interesting -especially following my mini-series on business start-up advice, I thought this was a really well timed and interesting talk. Some of the ideas he offered were simple and to the point so you can apply them to any business, the issue I have with it though is whether I can apply it to any of my clients -I’d love to take the time to go through Miss Mays adult store and help them improve some of their business processes but they don’t have the money to invest and sadly neither do I.

    I do however think that I can apply some of the concepts he was talking about to an example business which in turn could then be a starting point to discuss business improvement with clients. This however will take a little time and I think Stacey will need to be involved as this is what she’s primarily trained in. Although I love developing and I don’t think I’ll ever get away from it (certainly not in the foreseeable future anyways) I am getting more and more interested in business analysis, it’s not something that I’ve really got any experience in yet (having only been in business for a few years) but perhaps one day it’s an alternative career path I can choose…

    Either way, Brandon’s talk was well worth seeing and if he’s ever at a future conference I attend I’ll certainly make the effort to see him talk.

    Download the slids from the Connecting Design to Real Business Value talk by Brandon Schauer

    WPF/E (Scott Guthrie)

    Visit Scott Guthrie's blog

    For the final talk I decided to watch Scott Guthrie’s talk about WPF/E and boy what a talk it was! I almost didn’t get in as we were hearded in like cows (which was most amusing I have to be honest), the woman stopped me right on the entrance -I think much to Julian Voelcker’s delight as he’d managed to get a seat. Luckily though the women on the doors (yes women -not burly bouncers!) took pity on us poor, desperate geeks in admiration of some Yank they didn’t know and let us line the sides of the auditorium -which meant I ended up getting a front row (floor) seat.

    The talk was one of those “look at what’s coming” type talks but with a twist, it was something that I can see being of real use -and more than that gave you the urge to try it out. WPF/E looks like a really exciting new technology -even if Julian does think it’s just the same as Flash. As I don’t particularly like flash I think this will be a nice introduction to our development arsenal. That and the possibilities are far greater than those offered by Flash -especially where data interaction is involved.

    Scott Guthrie did show an impressive demo of WPF/E which can be seen at www.vista.si -it’s one of those “wow, I can’t believe I’m seeing what I’m seeing” moments, the site is basically a replica (working replica) of Windows Vista -but on the web. It even works with Firefox!

    The interesting point that I picked up on is their method of rolling out the WPF/E platform to users, rather than offering the usual Windows Update installer, it sounds as though it’s all going to be done in the same way the flash play is -a small (1.1MB IIRC) file will be downloaded the first time you visit a site that requires WPF/E and that’s it!

    I do have concerns over the accessibility of WPF/E but Scott Guthrie did assure us that later versions of WPF/E will be made more accessible. At the end of the day however, I guess it’s just the same situation as entirely flash sites -those that want to offer them, have to offer an accessible alternative (and as Bruce Lawson pointed out -NO, IT DOESN’T HAVE TO BE UGLY!).

    It was also nice to see Scott Guthrie talk as there are so many blog posts around the net talking about how they saw him, now I can say that I’ve seen him talk -somewhat sad but hey!

    The slides aren’t yet online but I’m sure Scott Guthrie will upload them to the Scott Guthrie's presentations page soon enough!

    In summary

    I always take a conference as a whole -there’s always going to be at least one talk which isn’t quite what you expected, if you can come away with at least one nugget of information that you didn’t have before -or- with a little of that zest for doing what you do back again it was well worth attending. In this case I got a real buzz out of most of the talks and have plenty of things to try out -now I just need to find the time!

    And if all that wasn’t enough to get your juices going and wanting to do some more development, I (I think for the first time ever) won something in the raffle -I was in the queue hoping for the book on accessibility by Bruce Lawson but actually won a years subscription to ComponentArt’s Web.UI component set -I’m well chuffed at that, now I just need to find somewhere to use them!! Oh, I shouldn't forget the free copy of Microsoft Expression Web we were given, and the T-Shirts and, and... :D

    I did get to meet up with a few people off the MsWebDev list but sadly not all -Mickey, I’ll have to say hi next time. The one thing that did amaze me was how long the lunch was, I don’t recall any of the DDD events being that long.

    If you went and you’ve not already done so, you should go and leave feedback on the event -it’s the only way they can improve it ;) so go leave your feedback on WebDD (http://webdd.co.uk/Feedback.aspx). Apparently you can also review it on the back network site (http://webdd.backnetwork.com/reviews/editreview.aspx

    If you missed out on WebDD 1, hopefully there’ll be a WebDD 2, I’ll post any news I have as soon as I have it -for my one blog reader that is :)

    WebDD -I was there, were you?
    Useful Links:  #  digg it!  del.icio.us  Technorati  email it!  Post CommentsComments [0]  Trackback LinkTrackback
    CategoriesTags: ASP.Net | Business | Design | General | The Site Doctor | WebDD
    # Sunday, February 04, 2007

    Finances (VAT, Accountants etc)

    Sunday, February 04, 2007 8:58:09 AM (GMT Standard Time, UTC+00:00)

    Billing

    This is something that we’re in the process of re-working as we have a variety of billing periods ranging from ad-hoc to annual. This is fine as long as you have some method of determining which method a client requires.

    Stacey has devised a very good suggestion that should also avoid any complications with large annual invoices:

    • £0 - £300: Invoice Annually
    • £300 - £600: Invoice Bi-Annually
    • £600+: Invoice Monthly (£50+pm)

    There are a few reasons I like this method:

    1. You won’t upset your client by sending them a £500 invoice they’d forgotten about
    2. It keeps you in contact with larger payers more frequently
    3. For the larger invoices it reduces the impact to you if the client chooses not to pay
    4. £50pm+ is sufficient an amount to justify the 10 minutes admin a month

    Payment periods are important, make sure every invoice has a payment period on it but don’t expect your clients to adhere to it. You’ll learn what each particular client is like at paying as you build your client base but many will wait until the last payment date to pay, if at all until you start to bug them (see: Processes and Procedures about having a dedicated admin day). Having a shorter payment period (or “Payment Required on Receipt”) will allow you to start chasing the client sooner.

    What should your invoice look like?

    There are a lot of example invoices on Microsoft’s Template website [http://office.microsoft.com/templates/] but it’s simple, keep them simple (this is a nice example: Services invoice with hours and rate) and only contain the information you need. Have your designer design you a nice letterhead that you can use with your invoices, not only does it look more professional but it ensures your main contact details are contained on the invoice, if your letterhead is a little different you never know, they may pay it faster as it catches their eye!

    Again it depends on your particular line of business but I would suggest you have the following information on it at the minimum:

    • If the invoice isn't on your letterhead paper then make sure your address is shown
    • Their address –and if it’s a corporate client include a contact’s name to ensure it lands on the correct desk
    • An invoice reference (an auto-number should suffice but you could prefix this if you like)
    • If you have it, the purchase order number
    • The date your invoice was issued
    • The payment due date
    • A summary of the items included on the invoice including:
      • An SKU (if relevant) i.e. 1HOURDEV for 1 hour of development work
      • A narrative (description) of the item
      • Unit cost of the item
      • Quantity of the item
      • Line total
    • Total amounts –if you’re VAT registered, include the amount with VAT, without VAT and the VAT itself
    • Your payment terms (i.e. all invoices must be paid within 14 days)
    • You payment details –sounds crazy but I see so many invoices without bank details or even information on who to make the cheque out to anywhere. It’s so simple to place this information on the bottom of the invoice, why make it harder than it needs to be for your client to pay you? If it’s not there, they need to make contact with you (if you’re around), you then need to look up that information, they then… ok you get the idea ;)

    It’s obviously optional and up to you but I think it’s nice touch to thank the client for their business on or with i.e. on a complimentary slip the invoice (see: Client and Supplier Relations) –yes, I love my clients!

    Accounting

    I’m not an accountant myself but my (far) better half Stacey is a chartered management accountant with CIMA (an alternative to ACCA) and I ran this past her as I had concerns with it. Her response was rather than obtaining (expensive) textbooks that you’re unlikely to understand (I’ve seen them, I can understand them but they’re somewhat boring) the best thing you can do is read through the documentation from the Inland Revenue –mainly because as soon as that textbook is printed it’s out of date which can (obviously) have massive re-processions for you!

    There are many different accounting bodies and they all have their own specialities. It’s important to understand that a Chartered Management Accountant can’t necessarily help you with your tax return, in the same way a taxation specialist can’t necessarily help you with profitability analysis (whereas a Management Accountant can). One amusing ditty about Chartered Accountants (and I expect this covers other industries with multiple bodies) is that they all feel their chartering body is the most superior whereas they’re probably all much the same.

    It’s important to remember that it’s the same as your industry, it’s great that the client knows what you’re talking about but it’s highly unlikely they know as much as you.

    Again from Stacey, any accountant worth their money will save you more than they cost you, as with many things in business –recommendation is key, ask around friends and family or fellow businesses to find a reputable accountant and if at all possible get a few references.

    There are many accounting bodies out there (CIMA, ACCA, CIPFA to mention a few) but make sure when choosing your accountant that they are chartered in some way or another as this means they’re more likely to be up-to-date with their knowledge and to some extent being regulated. When you’re setting out, you should be able to have all your books done for under £500pa comfortably.

    VAT

    Should you go VAT registered or not?

    When setting up The Site Doctor, I chose not to go VAT registered on the basis that the majority of our start-up contracts would be non-VAT registered companies. As it turns out I was wrong as every man and his dog these days is VAT registered but more than that I feel that many businesses perceive non-VAT reg'd companies more fly-by-night.

    Most people (especially in business) expect companies to be VAT registered so it hasn't affected potential contracts and we have the added advantage that we can claim money back ;). Sadly, the only people that suffer are non-registered people and at the end of the day they're unlikely to have the money to justify you not going VAT registered.

    One thing to note if you’re setting up as a team is there is a limit on the turnover of the company at which point you are forced to be registered, this year (06/07) the limit was around £65k (refer to the Inland Revenue’s website [http://www.hmrc.gov.uk/]) so if there’s 3 of you in the team and you hope to take home £20kpa you’ll need to go registered straight away.

    You don’t need to be over the threshold to be registered as you can voluntarily register before you reach this threshold. There are a couple of benefits to voluntary registration that come to mind:

    • The perception of your company’s earnings is increased. When not registered, your clients will know you have a turnover lower than the current threshold. This is not a good start when approaching clients with a proposal near over this threshold.
    • By charging input tax to your clients, you can claim some money back, virtually ever purchase you make has VAT added to it which you can offset on your charges.

    One flipside however is the additional administration work.

    Once VAT registered

    Yes, a great tip and this is so easy to do if you've got access to internet banking through your bank, it also means you have a nice nest egg at the end of each year as Sean said -I did the same with my personal tax before going VAT registered.

    In the case of LloydsTSB they allow you to manage both accounts within the single login which makes it even easier, if you want to be really prepared, just halve each invoice, put one half in your savings account to cover VAT and Taxes etc and the other half is what you take home.

    Having a little money totting up on the side in this way allows you to have either: A nice little Christmas bonus (by this time you should know what your tax bill is going to be and you’ll have a reasonable idea of your Quarter 3 VAT return) -or- A tidy sum to invest into the business someway :)

    We recently registered for VAT and the official stance on claiming VAT back was:

    3 years on goods (hardware etc) as long as on the day of incorporation you still have the item, receipt and you've not sold it on.

    6 months of services (hosting, domains etc) as long as you have the paperwork.

    I was told that the Inland Revenue think nothing of start-ups and businesses in the IT sector to have a very low (or credit) first return (and if you're going registered from day one then the first few returns) due to the cost of setting up.

    For the latest up-to-date information check out the Inland Revenue’s website: http://www.hmrc.gov.uk/

    I couldn’t agree more, when you’re small, set aside a day a week to input your expenses into a database and as long as you’ve got your invoice lists to hand totalling up your income isn’t hard, the form’s dead simple (see photo) so there’s no need to worry about that. I’ve even uploaded the MDB that we’re currently using as a stand-in while our accounting system is finalised.

    • Front page of a VAT Return
    • Rear page of a VAT Return

    While on the subject, in-house system development –choose it carefully, weigh up the costs of doing it yourself against buying an off-the-shelf solution. As a developer it’s all to easy to say “I’ll do it myself and save a few quid” –it’s not always the case, I’m only having ours custom built so I can tie it in with other areas of the business.

    Example Microsoft Access Accounting Database (21KB)

    Banking

    Whatever you do, make sure you have a separate business account, it portrays a more professional image for your company (payments to your company will be addressed to your company name rather than your personal name).

    Keeping up a pension is important, talk to your accountant about the options available to you. It’s also worth considering alternative pensions such as property investment. I know a few business owners that own the property the business operates within.

    That’s a fine tip, using a personal account for your company savings can indeed earn you an extra 3-4%pa which soon adds up. Make sure however it’s a separate personal account that you don’t tap into and don’t top-up with personal funds. That way you’ll make life a whole lot easier when calculating the business’ income from interest.

    LloydsTSB also offer an e-banking option which is exactly the same as all other accounts except electronic payments (debit cards, e-pay etc) are free, paying in cheques however still costs (and a little more IIRC). It’s a good account to have if you’re web savy and can do the majority of your banking online.

    Good point, the banks love you when you’re doing well however expect to be charged for your overdraft –many banks now charge a (reoccurring) annual charge of £50-100 for your overdraft facility, it may be a better (and cheaper) option to loan the business from your credit card if needed –taking advantage of the 0% period etc.

    # Saturday, February 03, 2007

    New Business

    Saturday, February 03, 2007 8:57:30 AM (GMT Standard Time, UTC+00:00)

    Call me a sceptic if you like but once you’ve been in business for a while there are two common elements to pretty much every new client:

    1. Every client’s idea is going to be the next big thing (in their eyes anyway).
    2. Every client has so many contacts that they’ll generate you more business than you can possibly handle

    Both statements are usually used to encourage you to give them a bigger discount or agree to some form of partnership. I’m not saying you should immediately dismiss what they’re saying, the best business comes off personal referral from a past client but instead take it with a pinch of salt.

    Don’t feel that you need to agree to any partnership etc on the spot, go home, have a drink and then weigh up whether you feel what they’re saying can be backed by what you see or whether it’s likely to be a load of baloney. You really should look at every client as a long term relationship rather than a one-off squeeze.

    While on the subject of investment partnerships with clients I think in the right situation they are a superb idea. Since setting up The Site Doctor we’ve setup a number of investment partnerships with our clients which have in some cases been very profitable, others not so. The trick is to form your own opinion, if the client suggests you do all your work for free and they’ll invest their time, ask yourself why they don’t have faith in their own idea to invest any capital. Sometimes they don’t have the capital ready and it’s a great idea, sometimes the investments can be quantified equally through doing this just don’t let them talk you into something your gut says is wrong.

    What I tend to suggest in the case that they can’t raise the full amount for your services is suggest a part share, part capital payment but again you must decide how much the shares are worth. It does take a little time to investigate someone else’s proposed business but you’ll be kicking yourself if you don’t!

    Once you decided whether or not to invest your time and you’ve negotiated the best deal you possibly can make sure you get it down in writing. This is very important and we’ve been caught out with this in the past. We had a client who suggested a 15% turnover share for the first year to cover 50% of the development costs. We negotiated over email and had the agreement written down, where we were caught out however was with a misunderstanding on our behalf –we assumed that we would get 12 monthly commission payments but what wasn’t clarified was the client offered the first month of subscription free –so straight away we were down to 11 months. Then thanks to WorldPay, the first payment wasn’t received until 2 months after the customer paid which meant we only received 10 months of payments –luckily we’ve got good relations with the client and it was resolved amicably.

    So if you’re going to go into an investment like this, make sure all the cards are on the table otherwise you may not be as lucky as we were! Before finishing this point, I personally wouldn’t agree to a profit share on the investment without having a breakdown of all the expenses otherwise an unscrupulous client may over-inflate the expenses and so reduce your share.

    Having a portfolio is a great start, depending on your industry this may not be possible. If you’re starting out and have no portfolio (and have time) then why not generate a few mock-ups of your work, don’t spend too long generating them and they don’t need to be perfect working examples but people do tend to respond better to something they can touch/see.

    Networking

    The classic phrase of “it’s not what you know –it’s who you know that matters” couldn’t be truer. When I setup The Site Doctor I was lucky to have some excellent contracts through a good friend Vladimir Srdanovic, though previously a developer he felt that he no-longer wished to develop but instead just generate new business. I was keen and ready to develop on a mass scale so teaming up made sense.

    If you’re not lucky enough to have someone like Vlad within your midst already then networking is an ideal way to generate new business and as you grow will become invaluable, whatever hang-ups you may have (age, gender etc) don’t let them come into the equation.

    Your local Chamber of Commerce will most likely host events, the fee depends on your local Chamber of Commerce, but the Birmingham Chamber of Commerce for example charges an annual fee, after which the majority of events are free to attend. We were a member of Birmingham Chamber of Commerce for a couple of years however last year we opted out because of the mentality within our local chamber. On reflection I would probably opt to try more dedicated events such as those run by dedicated networking companies but be prepared to pay through the nose.

    Don’t forget that networking isn’t just about making useful contacts to sell to, it’s also a chance for you to meet your competition and other people involved in your industry. I’ve been meaning to find time to setup a new media type networking group up in the Midlands for a while but I believe the Multipack [http://www.multipack.co.uk/] does pretty much the same thing as I was proposing.

    Meeting your competition and others involved in your industry is also useful because they may be able to throw you work that they’re not able to undertake for themselves, for instance you’ll find many design agencies have a mutual agreement with a development company in place by which they pass web development work to their partner and vice-versa.

    It’s also worth noting that networking is no-longer just a face-face meeting event thanks to online networking sites such as SoFlow and LinkedIn to mention a couple, getting involved in these online communities may not generate any business directly but will again give you the opportunity to promote your business.

    As time goes by, you’ll be surprised where your business will come from –always be pleasant to people and whenever possible have time for people as they’re bound to thank you in one way or another later. It’s always worth thinking long-term with any new contact, they may not contact you straight away but get in touch from time to time and you never know what may come of it.

    When you’re at a networking event –in fact anytime you could bump into a potential client make sure you have plenty of business cards available with you. The best thing you can do to save fumbling through every pocket trying to find a card is to have 5-10 cards in each pocket (yes EVERY pocket!). That way no matter which hand you reach with you’ll quickly find a card. For those times you’re not expecting, keep a few cards in your wallet too or perhaps attached to the back of your phone* -basically with anything you take with you everywhere. Keep the supply refreshed too, I’ve been caught out before and you may just miss a great opportunity!

    *I’ve not tried this but it’s a thought!

    “Keep your hands free” -that was something I was told by a networking advisor and has always stuck with me and it makes sense, they always have a lot of free food/drink at these networking events so avoid the rookie mistake of piling a plate high of food and taking a glass of wine in the other hand –how will shake hands on introduction? Have a small plate of food and/or a glass of wine* –it keeps at least one hand free to shake hands with or hand out business cards!

    *Some events shell out on fancy clips that hold the glass on the side of your plate but don’t get me started on those! Just don’t try is the best advice I can offer there ;)

    Fantastic tip! This is something that we do but haven’t pushed a great deal –a while ago, The Site Doctor teamed up with a Bristol based Mobile Development company called Mobile Pie, I grew up with one of the owners Richard Wilson while at school and felt that his services complimented ours. By teaming up we’re able to offer a broader set of skills without taking on additional cost. By reselling their services you can also start making money without needing to do all the work.

    Along the same lines, if you’re going into web development, identify and be-friend good/great design companies, if you’re able to get 2 or 3 design companies on your side then you’ll probably find they’ll bring enough work to keep you busy all year around.

    Meetings

    You’ll find your own style of meeting once you’ve had a few meetings with your new clients and the format of these meetings will obviously depend on your business sector but here are a few (some obvious) tips to having a successful meeting.

    Before the meeting

    • When arranging the meeting or at least before the meeting contact the client and ask them whether there is anything specific they would like to discuss.
    • Prepare! It’s probably best to think of a meeting a little like a job interview, before your meeting do your research into the company.

    The day before

    Get everything together the day before your meeting, if needs be have a list of all the items you need to take with you and tick each one off. At the least I would get together:

    • A pen and pad of paper (make sure there’s ink in your pen!)
    • Contact details of the client –I would write these on paper rather than just relying on your mobile
    • Directions to the client
    • Any supporting documentation for the meeting
    • Whatever you plan to wear. Deciding what you’re going to wear the night before the meeting saves time on the day and ensures that you’re not left needing to iron your shirt 10 minutes after you should have left…

    What should you wear?

    What to wear comes down to your personal feelings and what you feel is appropriate for the client. When I first set out I would wear a suit to every meeting as I felt it was what was expected of me –I expect this came partly from the fact that I went to a public school but also from the image I had portrayed in my mind but choosing what to wear isn’t always that cut-and-dry.
    More recently I’ve been going to meetings more casually dressed, this is carefully judged however from my research of the company before the meeting (or after the initial meeting) but I’ve found that when dealing with SMEs –especially when you’re dealing with the founder of the business people seem to respond better. Wearing smart casual clothes also portrays the image that you’re comfortable with yourself and confident in what you’re doing.
    Steve told me an interesting story about one of his friends who runs a very successful industrial heating and air conditioning company. This guy has a phenomenal turnover (his average contract is into 6 figures) but said that he soon realised he got most of his business when he turned up in a dirty boiler suit. His theory is that his clients feel that he as the MD is not afraid to roll up his sleeves and muck in.
    That’s not to say however that there’s no place for the suit! I still wear a suit to corporate clients as it’s what’s expected, I love wearing a suit I’m just saying wear whatever you feels right for the client and industry.

    On the day

    • Be yourself, what you wear is crucial to this, if you don’t like wearing a suit or jeans then don’t. Getting a new client is all about being able to bond with the client, feel comfortable in yourself (and not putting on a front) and you’ll find it a lot easier to find some common ground. You’ll also find that people can see through you if you’re putting on an act, if this is your first meeting, that’s not a very good way of building your trust!
    • Get there early. 10 minutes early is sufficient, if you get there earlier, wait in the car or around the corner but whatever you do, don’t be late. Yes you could argue that it’s because you’re so busy, but I feel it shows that you don’t care about the client more! If you’re going to be late due to i.e. the traffic, call the client and let them know 30 minutes – an hour before hand (with mobile phones you don’t have an excuse now!)
    • Have fresh breath –nobody likes talking to someone with smelly breath and if you’re up against a couple of competitor companies you certainly want to be remembered but not as the “guy with the bad breath”. Keep some chewing gum, mints or even mouth wash in your car or laptop bag
    • “To Tea or not To Tea” that is the question! I’ve found this can really disrupt a meeting if it’s a one-man-band. When the client asks if you’d like a drink, best respond something along the lines of “only if you’re having one” –if they walk in with a fresh brew you don’t want them to waste 10 minutes of your scheduled time making you a drink when you could be selling!
    • Make notes. When you get into the meeting, open your notepad to a fresh page, head it up (client name, date, attendees etc) and leave it open with the pen/pencil ready to use. Pay attention to the client, remember what you can but if there’s something you feel is important write it down –all to often I’ve got out of a meeting, intending to make a note of something I’ve forgotten! Don’t make the same mistake. Make notes about the little things, names of the client’s family, birthdays etc as it will allow you to personalise future correspondence.
    • Listen to what the client is saying. I can’t stress this enough, showing an interest in what they’re saying is important as the client is bound to give you lots of useful information –not necessarily about the job in hand but perhaps information you can use to your advantage later i.e. knowing they don’t like Whiskey would come in useful when sending them a gift.
    • Don’t invite distractions to the meeting. I’ve decided against taking a laptop into meetings these days because they make the meeting very disjointed and it’s often unneeded –especially in the initial client meetings, opening your laptop screen between you and the client is like erecting a large wall between you! Make sure your phone/BlackBerry/PDA is turned off and any.
    • Thanks to Mike A: Try to avoid talking business for the first 10-15 minutes of the meeting, use this time to talk about anything else possible. Look around the room and pickup on anything you can use as a talking point –perhaps it’s an example of their product or a family photo.

    After the meeting

    Whether you consider it successful or not make contact with the client after your meeting thanking them for their time and remind them of any information they’re meant to send you and/or any tasks you’ll be doing for them.

    Client and Supplier Relations

    Personally I think having good relations with all your clients is incredibly important. As I’ve said several times in this series of articles already, the best business comes from referrals, never underestimate the value of a good word. It really must speak volumes when a potential client contacts you and you’re able to say “look through our portfolio and feel free to contact any of the clients listed for a reference”.

    Having excellent client relations isn’t really hard, give them an shining service, keep it personal, be open and honest and keep in contact after they’ve paid, I don’t mean call them up and talk for hours everyday but drop them an email or a call once in a while asking if there’s anything you can do to help them and if you supplied a service or good to them such as a website ask whether it’s still meeting their needs. Making this little effort can often land you more work as there are numerous times I’ve contacted a client to say hi and they’ve said “Oh hi Tim, I’ve been meaning to call you about xyz for a while”… Remember that your clients are no-doubt just as busy as you so make it easy for them to contact you.

    The theory behind excellent client relations is that a happy client who has received an excellent service will come back -and- refer you to other clients. An unhappy client however who feels they have had a poor service will not only not give you their next piece of work, but they will tell a number of other people about the bad service they received. Someone once told me that 8 happy clients may refer you to one other client by one unhappy client will let 8 other potential clients know!

    If you’ve had a good service, let them know. All to often people are quick to criticise and point out the faults with any given situation so thanking someone for a good service is a real breath of fresh air, it can really lift someone and make them feel that all the hard work and effort that they have put into the product and/or service given to you has been worth it. Remember that even if they’re a supplier, they may very well need your services later down the line and taking a little effort to thank them will go along way!

    Absolutely, I feel karma has a lot to answer for in business. At the end of the day, you’re the boss, if you’re seen to be open and honest with people, they’re more likely to respond well, as your parents have probably always said, honesty is the best policy. If you’ve got a technical issue you may find they have a solution to it that means less work for you. If you call them to confess to some service downtime before one of their clients tells them, that’s got to be a good thing!

    Christmas Cards/Gifts

    I like sending out cards and I think excellent client relations are very important but every Christmas I hit the same question “What should I do this year?” Each year it generally ends up with me doing nothing but this year I actually got my act together and sent out a couple of gifts which seemed to go down well.

    Steve, my father-in-law has a client that makes luxury hampers and he recommended I contact them to see if they could help as the hampers were pretty darn impressive, he was right. The issue I quickly realised was however, who should I send them to? Some of our clients only bring in £20-30pa which didn’t really justify a £20 hamper. This year I had already decided which clients I should send to, but while doing my books I noticed a couple of other clients that I would have liked to send them to so in-line with my current business reforms we came up with a system of grading clients which I think will work well for next year.

    It’s quite simple really, work out the turnover and profit generated by each client/contact you have and grade each one. For instance, you could spend £10 for every £1000 of business the client/contact brings. I wouldn’t stick strictly to this however as you may have some lower profit clients who you enjoy working with –don’t be stingy, it’s Christmas!

    Then you have the issue of deciding what gifts you would like to send out, the first year I was going to send out a few bottles but a friend said that it was tacky, over-done and thoughtless (especially in the city) so I didn’t bother. Try and make it relevant to your company and different i.e. Cocoa Creative [www.cocoacreative.co.uk] this year sent us a bar of chocolate wrapped in pink paper, I thought that was cool, Stacey thought it was tasty. Either way it got them a mention  here which clearly means I’m thinking about them…

    A word of caution: before sending out extravagant gifts to your client it is advised that you check any restrictions that may be in place on the total value of gifts allowed. I say this because there is a limit imposed on the value of any single item for doctors -at one point drug reps were giving away holidays for doctors to use their product over another so it may also apply to other industries as well.

    I keep referring to clients and contacts here because I would thank anyone that generates your business more work, it’s a great situation to be in if you’ve got several mini-sales people!

    New Business
    Useful Links:  #  digg it!  del.icio.us  Technorati  email it!  Post CommentsComments [0]  Trackback LinkTrackback
    CategoriesTags: Business Start-up Advice | The Site Doctor | WebDD
    # Friday, February 02, 2007

    Day-day running

    Friday, February 02, 2007 8:54:07 AM (GMT Standard Time, UTC+00:00)

    Day-day running

    Evaluating when it’s best to do something in-house and when to outsource it is invaluable -especially in the case of a developer, the temptation to develop all your internal applications is great. Sometimes it’s better to outlay £500 rather than spending many hours not getting paid by clients.

    If you’re starting up with more than one person, having some form of blog is a useful method of conveying this information as it means people can easily subscribe to the RSS feeds and keep up-to-date with the latest information with minimum effort. If you use blog software such as DasBlog [www.dasblog.net] you are also able to have different authors on one portal.

    While on the subject of blogs, I would recommend setting up a company blog, or at least a personal blog with plenty of references to your main website. These back links will increase your visibility and hence ranking on Google but it will also increase your company’s profile.

    I would advise reading my other posts [The Scourge of Google and Public Facing Blogs and Blogging And Competition] which overviews what I see as the pros and cons of blogging. As you’re here reading this, it’s evidence enough as to why you should blog IMHO.

    Processes and procedures

    Depending on your background, you may not be too interested in the management side of business but it is very important to have a number of management processes in place, you won’t necessarily be able to set these up before you start but as you learn your business, get them in place ASAP.

    What sort of processes am I referring to?

    • Have a client sign an agreement that outlines the responsibilities of both parties (what you’re going to do for them and what they’re going to do in return –e.g. pay) before you start work for them. Make sure you’re as clear as possible so you can charge for additional services without the client quarrelling with you.
    • Depending on the size of the company have the client provide you with a purchase order number. It’s best you ask whatever size the company is as it portrays the image that you’re dealing with larger organisations but the worst they can do is ask you what you mean. A purchase order number is basically a reference in the clients purchase database letting their accounting department know your invoice is on the way in. In many situations it also speeds up payment. When dealing with larger invoices it’s a must because it’s the loosest form of guarantee the person you’re dealing with has informed their accounts department and had the amount authorised.
    • After you’ve had a meeting with a client follow it up a few days later with an email/phone call thanking them for their time, make it relevant to the meeting if you can and word it so it requires some form of response from the client. Making this post-meeting contact can be the difference between getting the work and not –in the same way making contact with a recruiting company after your interview thanking them for their time can make the final decision sway your way.
    • Have a dedicated admin day. Initially this can be something you do once a month but as your business grows you’ll most likely need to increase this to once a week, as outlined in my previous blog post about setting your rates [Pricing your work] you’ll probably find around two days a week are taken up with adminy type work. People are forever moaning about how boring doing a years accounts is however, if you do break it down to say 2-3hours a week it’s a lot easier It’s important to remain strict with yourself as there’s always something more interesting available ;).
    • Invoice regularly! Sounds obvious but it’s important. Depending on your business model, I would recommend setting a day aside every month which is solely for invoicing. I’m not just talking about sending out invoicing, I also mean chasing invoices as you’re bound to have plenty of clients who will delay paying until you really bug them!
    • Log payments and receipts –this should be part of your admin day but it’s worth mentioning again. If you log all your receipts and any payments on a weekly basis it should dramatically save that end of year rush trying to find all your receipts for the accountant, if you do it really well it should also save you a few quid!

    Team structure

    Having someone who’s able to carefully put people in their place and ensure the company is moving in the right direction is important, it’s even more important when friendships are involved. If one of you can’t cut the niceties and point out the obvious you’re more likely to fail from the start.

    Having someone who is presentable and can communicate well is intrinsic to getting new business, everyone operates differently but if your new client can’t relate to your representative you’re unlikely to retain them for very long. As James said, if you can’t at the same time tell them to cough up, you’ll probably find yourself with a very low cash flow very quickly.

    Getting Employees

    This is something that I’m approaching at the moment, so it’s probably best to add in an article later however there is a very good series of articles on Joel on Software [www.joelonsoftware.com] about Finding Great Developers which is a good start [http://www.joelonsoftware.com/articles/FindingGreatDevelopers.html].

    The hardest thing you’ll face (if you’re anything like me that is) is loosening that tight grip you’ve got on your business. It’s taken me 3 years but I’m finally allowing Stacey to take over some of the admin work for The Site Doctor in an effort to lighten my work-load (admittedly I should be blogging less too but hey). Accepting that other people work in different ways is a surprisingly hard thing to accept when it’s your own business. I’ve already accepted that if I want my business to grow, I’ll have to put up with someone else’s coding style until we’ve found common ground.

    One final point I’ll make here though is (again depending on your business model) you will need to get employees at some point so make some form of provision for them. If you don’t get an employee and try to do all the work yourself forever your business is capped and you’ll more than likely burn out. Someone once told me the perfect business is one that can easily be converted into a franchise.

    Business Management

    Well put, you need to be able to fall off your bike and get back on again so to speak, you will make mistakes and if you don’t I doubt you’re taking enough risks and so will just end up ticking over, there’s nothing wrong with making mistakes as long as you can learn from them and move on. Listen to your gut instinct and as soon as it turns sour pull out!

    Taking an all -or- nothing approach to things, giving it everything you can/need to until the point that your instinct says enough and then cut it off straight away is important.

    Be careful, but don’t let your project or company suffer as a result of being prudent. If you’re going to talk to someone that’s in the position to do what you’re proposing (i.e. they have the skills or can buy them) at the very least have them sign an non-disclosure agreement to give you a little backup. If you’re really worried, prepare your material so it gives them the minimum amount of information required for their input and explain your reasons for doing so.

    Either way, if you ever discuss a project with someone else (even internal employees) there’s a chance it’ll get stolen. The best advice here is learn from it and move on. If you want to pursue the matter in the courts weigh up whether it will be at the cost of the detriment of your company and/or image.

    When I first set out, I had to take a client to court and cutting a long story short settled out of court because I calculated the rest of the time I would spend preparing for court would cost me more than I would be awarded. It’s also worth noting that if the amount is below a threshold (IIRC £5000) you can go through the Small Claims courts which saves you a lot of expense and agro.

    Action pack or Empower

    Day-day running
    Useful Links:  #  digg it!  del.icio.us  Technorati  email it!  Post CommentsComments [0]  Trackback LinkTrackback
    CategoriesTags: Business Start-up Advice | The Site Doctor | WebDD
    # Thursday, February 01, 2007

    Working from home

    Thursday, February 01, 2007 8:52:38 AM (GMT Standard Time, UTC+00:00)

    When you set out, cutting costs is crucial to your long-term success so working from home is an ideal solution, but is it really a good idea? What will happen when a client wants to meet? Will I ever be able to leave work?

    Your working environment

    Firstly, make sure your office space is as dedicated an office space as possible, I know it’s difficult to spare the space when you live in a 1bed apartment but at least have a desk that allows you to fold away your papers safely. This is doubly as important if you’ve got kids or a loved one as that will take away the opportunity for them to “accidentally” spill a mug of coffee over your latest proposal.

    If at all possible, dedicate an entire room –or even a floor if you can spare it to the business, there are a couple of reasons for this, the first is that you’ll be able to rent it to the business and then offset that expense on your tax return, another and I feel more important reason is that you’re able to get into another frame of mind when entering that space. I have an office at the rear of our property which is completely separated from the house with the exception of a small tea hatch. I’ve always felt that this has allowed me to semi-detach* work from home even though they’re within the same boundaries. Where at all possible I avoid mixing the two to re-enforce the segmentation.

    *You’ll never really be able to detach from your business –it’s part and parcel of running your own business I’m afraid.

    Depending on your personal mentality, having some form of dress code can also help you segment home from work, if you’ve already got a suit from a previous role, why not wear that while at work, then when you get home in the evening change into your home clothes. This may seem wacky but you’re not doing it for others, more so you can mentally detach from work. At the end of the day, you’re working from home so you can wear what you like and the likelihood is no-one will know*.

    *I was told an “interesting” fact the other day, apparently it’s been estimated that somewhere in the region of 30% of home-workers work naked. It’s a disturbing thought –especially when you’re on the phone to someone you know works alone. Luckily I can reassure you that I’m not in that 30%. Yet.

    Have a routine

    Have a routine –this is very important, in the same way you would if you were working for someone else, make sure you’re in work for a given time and stick to it. Luckily, my better half Stacey has a full-time job which means she is up at 0630 every day for work as it is, I’ve forced myself to get up with her and get into the office ASAP which has worked well. It doesn’t matter whether your routine is 0900-1700 or 1700-0900, as long as you stick to it you’ll avoid countless duvet days –remember, when you’re not working, the likelihood is you’re not earning*!

    *Again, this depends on your business model!

    It is also worth setting yourself a finish time as part of your routine, you’re likely to work over a lot of the time but actually having a time to stop and get your coat gives you a deadline to work towards. There is a great article from Ryan Carson on A List Apart about working 4 days a week [The Four-Day Week Challenge], I think it’s a great idea and one that really is achievable but I agree with him, it's worth accepting that there'll never be enough time to finish everything.

    Being the only person in the office I didn’t overly want to leave the office to itself and not having anyone to spend that extra day with (Stacey’s at work), I’ve chosen to make this change in stages. At the moment I’m following Google’s example of 20% time. 20% time is something that Larry and Page adopted from academia but in short, everyone is allowed to dedicate 20% of their working week to something that isn’t part of their day-job. This may be something they’re interested in developing for personal reasons or just an idea that you could profit from.

    I’ve found this to be very beneficial to my working week especially when I’m in the middle of a large project, it gives you a little breathing space which in the past has allowed me to work out issues that had me banging my head against the wall. It also makes the weekend feel longer so you can relax more and prepare for the week ahead.

    I like this 20% time concept (or as I call it “Fun Fridays”) not only because I'm able to step back from any on-going projects and relax a little more during the weekend (even when working on the weekends) but also because of where it takes me. For instance, a couple of Fridays ago I came up with the idea of writing a “Suggestion Box” -a simple Web User Control that can be added to any future project, it allows the user of the site (usually an admin user I would think) to suggest additions/alterations to the application. The suggestions are then stored in a central database for me to review later. The users can also rate other suggestions (using a little AJAX rating system ;)) so the managers are able to see the most popular ideas and gauge which are worth adding to the system. The plan is to review the (user) based suggestions with the management on a regular basis (even if it's just over email) and generate more work that we wouldn't have otherwise had. Although I identified the idea during the normal working week, had I not had “Fun Fridays” it would still just be an idea.

    Having a routine for starting and finishing your day will allow your mind to be in the right frameset and again add another level of segmentation of home and work life. Being able to turn off at a given time and feel that you’re able to relax in the evening is very important.

    Won't my clients mind?

    In a word: No. I wouldn’t worry too much on having clients come to your house for meetings as depending on your business, I expect you’ll find that the majority of your client face to face meetings will be on site but for those that aren’t, why not check out the local hotels, pubs and coffee houses for a suitable meeting place. Find a couple of options and check them out at various times of the day and week so you know what to expect. Are they quiet? Are the tables big enough? Does it portray the right image for my company?

    Many local hotels now offer conference and meeting rooms that include facilities like internet access, tea/coffee and other amenities but they’re at a cost. Alternatively your local Chamber of Commerce is likely to offer the same forms of facility if needed.

    Asides from the work/home segmentation, one downside to working from home is that you will get rather cut off from the outside world. This is fine if you have the need for many client meetings or on-site consultancies but can be tough if not. You can easily remedy this by finding your local coffee shop, gym or pub and take a little time each day/week to get out of the office.

    There is a new form of business establishing itself at the moment which offers dedicated office space on a monthly retainer so if you choose to work from home for the majority of the month but would still like to retain a little face-to-face contact with the outside world you could check out the serviced offices. Another advantage of having these offices will also mean you meet other businesses.

    Telephony

    I’ve been working out of an office at the back of the house for 3 years now and it’s the same telephone line, friends and family know this so when they call and I don’t answer, the “Welcome to The Site Doctor” answer machine message doesn’t worry them. I’ve not had any issues with this, the only thing I would recommend is you have Caller Id added and if you can’t remember telephone numbers get a phone/display that has a memory for you, that way you can easily ignore business calls out of hours if you so wish.

    Remember that when starting out, it’s important to keep costs as low as possible and although having dedicated office lines is nice, it can also be expensive. Skype is a cheap VOIP solution however I’ve had issues with it’s reliability for Skype-Skype calls in the past so can’t personally recommend it.

    Working from home
    Useful Links:  #  digg it!  del.icio.us  Technorati  email it!  Post CommentsComments [2]  Trackback LinkTrackback
    CategoriesTags: Business Start-up Advice | The Site Doctor | WebDD
    # Wednesday, January 31, 2007

    Business Plan

    Wednesday, January 31, 2007 8:51:29 AM (GMT Standard Time, UTC+00:00)

    At the very least I would recommend it’s worth writing a SWOT analysis, this will give you focus and allow you to visualise your Strengths, Weaknesses, Opportunities and Threats more clearly and perhaps spot something that’ll be crucial to your success or failure. Depending on how fast paced your industry is, it’s always worth re-evaluating the SWOT analysis every now and again.

    Once you’ve written your SWOT analysis, show your friends, family and colleagues and see if they can add to it at all. Don’t worry if they criticise it, if you can’t justify or argue your point, perhaps it needs a little more thought.

    Defiantly, when setting out less is more. It’s easy to setup i.e. a web development business for only a few hundred pounds but by having lower overheads, it will mean as you earn off your first few jobs, you’ll have more to invest in the company.

    What benefit is there to your company if you go out and get the best PC, the biggest office with a couple of secretaries and some flash car? In reality you’re more likely to struggle as you’ll be setting off on the back foot. Make sure you carefully weigh up any purchases, perhaps by categorising them into i.e.:

    • Need
    • Would improve work capacity
    • Would like, could perhaps improve work capacity
    • Would like but wouldn’t improve work capacity
    • Don’t need but look, it’s cool!

    If you’ve got investment for the company and can afford to buy all the cool kit from the offset, great but it may be a better idea to keep that for a rainy day. Although I’ve got no proof I’ve always felt that had I not had to earn every penny we had to spend as a business I would have been far more complacent and so lazy and the business wouldn’t be where it is today. Along the same line of thought, I sometimes wonder if I could have done anything differently/better if I did have money to invest at the start and whether it would have got The Site Doctor any further.

    This is a very good point, it would be worth noting this down in your targets and goals list [Targets and Goals] as it will give you something to focus on. Think of all expenditures on an annual basis, then when you have the annual expenditure you can work it out on a average number of jobs and/or a monthly figure making it feel more achievable.

    Targets and Goals

    Personally I can't stress how important targets are enough. Have a set of personal targets as well as business goals -NOT "Make loads of money". The targets should be SMART* (Specific, Measurable, Achievable, Realistic and Timely), write your targets and goals down somewhere as it commits you, you don't need to read them again just as long as they're there.

    *Thanks for the acronym Stacey!

    When setting out I had a few:

    1. Turnover £500pm for the first 12months (then rising in year two)
    2. Pay off all and any accumulated debts that we had (credit cards etc)
    3. Go on holiday once a year
    4. Be able to buy and afford to run an RX-8 (long story)

    Tick them off as you go and add more as needed, they'll give you focus and drive. I would recommend having a selection of goals including something that would appear to be unrealistic as it will give you something to really strive for. It's also worth telling other people about your goals as in an odd way, it commits you to the goals.

    A new one on me that I’ll be reading up on tonight! Guanxi [http://en.wikipedia.org/wiki/Guanxi]

    At the end of the day, a business plan should enable you to visualise your goals as a business which in turn will allow you to focus your efforts. Don’t panic about not achieving everything at once, prioritise and attack one thing at a time.

    Setting your rates

    Firstly check out my previous post about how I suggest you go about set your rates [Pricing your work] as it has a great way to quantify your rates with meaning that’s also scaleable.

    I agree and this is something that I’ve only come to appreciate relatively recently. When setting out I decided that the first few jobs would be relatively in-expensive to build on our portfolio, this was a real Catch-22 as I felt compelled to deliver amazing results for next to no reward. This temptation is great when you start out. You end up becoming a busy fool, working all the hours given for little financial reward (which limits potential investment in your company). You end up begrudging your clients and if you were to let it continue I would imagine start offering a lower service, or worse decide that running your own company wasn’t a good idea.

    We recently re-jigged our pricing structure while analysing where I felt the business could do better and the only difference it has made is to my happiness, I feel far more rewarded for the work I produce. Interestingly the quantity of work being obtained has also increased somewhat dramatically so don’t think that your price will always sway the decision –a lot of the time it’s more about whether the client responds well to you.

    It’s also worth pointing out that higher (not extortionate) rates, aren’t always a bad thing, I’ve lost out on pitches before because we’ve been too cheap and the client has opted for a more costly company, this isn’t always the case but oddly being more expensive often suggests you’re better.

    Finding a niche isn’t always something you can do when you first set out as until you’re within a market you may not know the market well enough. If you do find a niche however, make sure you run a SWOT analysis on it first, it may not be that no-one else has noticed it, it may just be that others have tried and failed –that’s not to say that you can’t make it work however!

    It’s defiantly one of the best things you’ll ever do –I would imagine this still counts even if it goes terribly wrong. I was once told that once you’ve been self-employed you’re effectively unemployable ever again and after having been self-employed for 3 years now I can see what they were getting at. I don’t think it’s so much from an employer’s POV but an employee’s, I would find it very hard to give up the freedom/control myself and so will do almost anything to avoid it!

    I think this is a nice place to close this article, so in closing I’ll say that even if it fails you won’t regret trying, it’ll most likely be one of the hardest but also most rewarding and filling things that you’ll ever do. The worst thing you can do is not try and end up forever wondering what if…

    Business Plan
    Useful Links:  #  digg it!  del.icio.us  Technorati  email it!  Post CommentsComments [3]  Trackback LinkTrackback
    CategoriesTags: Business Start-up Advice | The Site Doctor | WebDD
    # Tuesday, January 30, 2007

    Contracts and Terms and Conditions

    Tuesday, January 30, 2007 8:50:24 AM (GMT Standard Time, UTC+00:00)

    IIRC as a new business you’re legally entitled to 30 minutes of a solicitor’s time which you should take advantage of. Sadly 30 minutes won’t last very long so prepare a set of your most important questions first. It depends on your local Chamber of Commerce, but when we were a member of the Birmingham Chamber of Commerce, they used to offer you low level legal support as part of your membership.

    Although it may seem a large expense when you’re starting out, I really would recommend getting some form of T&Cs drawn up. Spending a couple of hundred pounds at this early stage is likely to save you a lot of hassle later down the road. It’s also an idea to have a coversheet written up that can accompany the T&Cs which has a few blanks you can fill in. We’ve called this our “Agreement for the provision of service” and it reads along the lines of:

    Agreement for the provision of services

    This agreement made and entered by and between [YOUR COMPANY NAME] (hereinafter referred to as “The Supplier”) and [CLIENT'S NAME], whose principal place of business is [THE CLIENT'S ADDRESS] (hereinafter referred to as “The Client”)

    The Supplier agrees to provide [LIST OF SERVICES] services as outlined within the proposal dated [DATE OF DETAILED PROPOSAL].

    The Client agrees to pay The Supplier [DEPOSIT AS A PERCENTAGE]% (£[DEPOSIT AS A FIGURE]) of the total project costs on the completion of this agreement followed by [NUMBER OF PAYMANTS AS A FIGURE] ([NUMBER OF PAYMENTS IN WORDS]) additional monthly payments of £[MONTHLY PAYMENT AS NUMBER] from [START DATE] totalling £[TOTAL PAYMENTS AMOUNT IN NUMBERS] ([TOTAL PAYMENT AMOUNT IN WORDS]).

    The Client agrees to the total project costs of £[TOTAL PROJECT COSTS AS A FIGURE] ([TOTAL PROJECT COSTS AS WORDS])

    The Client is aware and agrees that additional services beyond the original specification may be subject to additional charges. Any additional charges will be confirmed in writing by The Supplier before being undertaken.

    The Client also agrees that The Supplier will offer on-going support, maintenance and monthly reporting for a combined total of [DETAILS OF THE SLA] from [START OF SLA] for a monthly payment of £[MONTHLY PAYMENT AMOUNT] until instructed otherwise.

    On completion, The Supplier will supply The Client with relevant timesheets for the development work if requested.

    In accordance with our Terms and Conditions, Value added Tax, where applicable, will be added at the appropriate rate to the total of all charges shown on the Client’s bill.

    We agree to the Terms and Conditions of The Supplier

    IMHO you can write these yourself as they’re more just a summary of what you’ll be doing for the client in plain English so there’s no argument. I would state the total amount you’re charging –both in numbers and words, any time frames and additional services i.e. hosting.

    Make sure you have the client sign two copies of your coversheet before you start any work for the client, you then sign and return one copy for the client’s records. The other, make sure you store somewhere safe (just incase!). I’ve not found clients object to signing T&Cs before work starts as it protects both the user and the client but I have found the coversheet helps clarify things for everyone.

    There are a lot of contracts available for you to download online if you don't want to write your own or can't afford to have them written for you.

    If you’re setting up with more than one person –especially if they’re a friend or loved one writing some form of contract between the two of you is incredibly important. Not wanting to sound negative but you never know what stresses and strains may be put on you and what effect they may have.

    When forming the contract, if you’re going to do it yourself, make sure you overview the financials very carefully, at the very least I would cover the following:

    • Any investments including details about who invested what, how long the investment will be for, any conditions associated with the investment and clear details on the repayment(s) of the investment.
    • Profit share, I would suggest including information about percentages if possible (even if you’re planning on a 50-50 split).
    • Liabilities and ownership–this is something that will come with time but it would be a good idea to overview everyone’s roles within the company. I wouldn’t encourage a blame culture but associating responsibility is important.
    • Decision making. At times you will be required to make important decisions on a company basis, this is easy if you’re a sole trader but if there’s more than one person, how will you decide what to do should there be a split? Will you bring in a mediator to make the final decision or will you toss a coin?

    At the end of the day, as John was getting at, no matter what the current the relations are between the company’s partners it’s best to be as explicit as possible to avoid any disagreement later.

    A great point and well put. When you set out, scream and shout about the fact; let everyone know what you’re doing –and don’t forget to tell all your friends and family too. If you’re lucky, they’ll know someone who needs your service and will recommend you (or mention the fact allowing you to follow it up). The best business* we’ve had in the past has always come from recommendation.

    *“Best” isn’t always quantified by the cheque at the end of the job

    # Monday, January 29, 2007

    Business start-up advice

    Monday, January 29, 2007 8:47:39 AM (GMT Standard Time, UTC+00:00)

    Wednesday 6th December 2006 was an interesting day for me, I often get asked about how I run The Site Doctor and how I set the company up in the first place, but on Wednesday I had no less than 3 people mention that they had thought about setting up their own business but weren’t sure how to go about it or whether they should so I thought there must be more.

    Leon Jollans was the first and posted a question on the MsWebDev list (message in the archive here) asking for some advice and seeing as a plethora of fantastically useful information was offered I thought I’d wrap it up for future reference.

    Before we get down and dirty with the advice, the first thing I’ll say to you is:
    If you’re thinking about it, do it –there’s never a better time than now.

    Cheesy as it sounds, it’s true, the number of people I’ve spoken to in the past saying that they’ve thought about it but the time’s not right is unbelievable, if you start off with that attitude, the time will never be right, there will always be a reason not to do it. The thing you realise once you do take the leap is; it couldn’t have been a better time!

    In regards to how many businesses fail, I believe the official figures in the UK at the moment are 1 in 5 businesses make it through the first year. This would explain why the government is giving so many breaks to SMEs, so just remember -you're the 1 in 5!

    Ok so to the tips, I’ve tried to get these into some form of logical order but some comments span multiple topics so I apologise about that.

    Update 16th Feb 2007: The article is now available as a downloadable PDF

    1. Business start-up advice
    2. Before you get going
    3. Contracts and Terms and Conditions
    4. Business Plan
    5. Working from home
    6. Day-day running
    7. New Business
    8. Finances (VAT, Accountants etc)

    In Closing

    Thank you for taking the time to read the articles, I hope it wasn’t too overwhelming for you and more importantly I hope it’ll be a useful reference for you in one way or another. There was a lot more I want to add but it was starting to be never ending story so I had to put closure on it, over time however I expect I’ll add more so check back soon!

    Here’s to your success!

    Tim

    Thanks To

    As I said at the start of this article, it is largely based on information posted on the MsWebDev list so thanks must be given to all those that contributed:

    Useful References / Links

    The following links may also be interest to you:

    Before you get going

    Monday, January 29, 2007 8:44:40 AM (GMT Standard Time, UTC+00:00)

    I think this is a nice point to start off with; it’s unlikely that you’ll be setting up a company doing something that you hate but it’s worth thinking about exactly what you wish to do. When I first setup The Site Doctor and people asked me what The Site Doctor did, I said “Web Design and IT Consultancy” as I felt it was broad enough cover everything I was interested in doing, as it turns out I would think the majority of our work should now be classed as “Web Application Development” but you try explaining what that is to your IT illiterate friends ;)

    I would be interested to know how many companies start out aiming to offer one service and then diversify into other more specialised areas –I would think it frequently happens after identifying a niche market.

    Identifying a source of quick (and if possible easy) revenue is a great idea, it doesn’t have to be something that you’ll continue in the longer term but this will ensure that the first few months while you’re establishing the company aren’t as hard as they perhaps could be. When I was setting up The Site Doctor I was prepared to take a part-time job to subsidise the business should it not generate enough income, luckily I didn’t need to but having a backup plan is always a good idea!

    The other advantage of doing i.e. contracting or freelancing is that you’ll be able to get straight into the market place, letting people know about your services and identifying potential markets. The sooner you can get your face known, the more likely you are to generate new business.

    I would recommend talking to an accountant to understand the pros and cons about each type of company. Setting up as a sole-trader or partnership is easier in the short-term but switching from a sole-trader to a limited company later may bring added complications and/or paperwork that could be avoided.

    If you’re starting out on your own, it’s probably worth looking into the option of setting up a networked business. I’m not sure if this is the correct term for it but it’s what I’ve been using for some time now to describe how The Site Doctor operates. The theory is simple, rather than having a load of in-house staff which will increase your overheads, make tactical relations with other companies offering complimentary services. As mentioned later in the series (see New Business –Networking) we have setup ties with design companies, mobile development companies and a variety of other complimentary services.

    The beauty of this form of co-operative business is it allows you to be a single point of call for more services than your core business which is more likely to keep you in the forefront of the clients mind. It also has the massive benefit of having back-up staff without the cost. If you’re planning on running a development company, why not find a couple of other local developers or development companies who can take on some of your workload? Initially you may not be making any additional income on top of their charges, but should the workload continue, you’ll be able to consider taking on an employee safe in the mind they’ll pay for themselves.

    Steve (my father-in-law) went on a local business course many years ago before starting his Birmingham couriering business and is forever spouting pearls of wisdom that came out of it. From what he’s told me, the course has helped on many levels when running his courier business from decision making to re-assurance.

    One point that Steve did pick up on from the course that I feel is relevant is the idea of listening. His course leader suggested that if you ever had the opportunity to take a successful business man/woman such as Richard Branson out for dinner, take them to a nice restaurant and pay for the dinner, not to impress him but to have a couple of hours of their time –something that you perhaps wouldn’t be able to afford otherwise. I think this applies to all business owners (I’m open to offers!) as you’ll have a great opportunity to learn from someone who’s been there and done what you want to do…

    As far as I know, he’s never got any sniff of business out of the course but I would suggest using the event as a networking opportunity as the attendees are most likely new to business and in need of some contacts.

    The business course should also expand on some of the points raised here. I’m not sure where the best place to look for one is, there are plenty available through Business Link but I would think finding one run by local business owners may be of more use.

    As with announcing your launch, get involved in communities, it does cost you in time but people respond well to you giving something back and it often results in more opportunities arising which more than cover the costs of participating. You also get a nice warm feeling from knowing you’ve helped someone else!

    There is currently a huge amount of information available on starting your own business and running your own business from the government as there’s a drive to encourage start-ups in the UK, pop down to your local business link and you may even find there are grants available to you.

    Identity

    A name is an important factor of your business, make sure it’s scaleable and something that you’re proud of. I came up with “The Site Doctor” as the business name primarily because (among other reasons) I felt the majority of our business would come through fixing websites.

    You should be proud of your name for obvious reasons, but remember that you’ll be needing to say it to people on a regular occasion. You’ll no-doubt also be frequently asked how you came up with your company’s name or as to its meaning as small talk at networking events and the like, so have a response prepared before the event (even if it was just something that you thought sounded cool!).

    The reason I say you should ensure your name is scaleable is because I feel “The Site Doctor” portrays an image of a one-man-band which is something that I now can’t get around without changing the name. I did think about re-branding the company as “TSD” but on discussing this with existing clients and friends we felt that it was somewhat impersonal, I’m inclined to agree and would steer clear of acronyms for your name.

    Remember that branding and company image is a profession itself and having a few quid to outlay on it won’t hurt. You can see the past incarnations of The Site Doctor [New TSD Design] which we’re currently trying to face lift but I would recommend having it designed professionally, not just to impress potential clients but also to give you confidence.

    Sean’s idea of having templates for your proposals is a great idea and one well worth passing by your designer. By all means have an idea of what you feel your company’s brand should look like/convey but remember to leave a little room for the designer to make suggestions.

    # Wednesday, January 17, 2007

    My PC -what's it made of?

    Wednesday, January 17, 2007 10:38:57 PM (GMT Standard Time, UTC+00:00)

    A couple of people have been looking into new PCs recently so I thought it may be of use for me to post what I've got (and to use as a point of reference in the future!). This is fairly old now (nearly a year infact) but it's still doing me proud :)

    • Motherboard: Asus A8N-SLI SE (101701)
    • Processor: AMD Athlon 64 X2 3800+ Dual Core 2.0ghz 512Kb/512Kb Cache (094640)
    • RAM: Crucial 1GB DDR PC3200 400MHz (65719)
    • Graphics Card(s): 2 x Gainward BLISS GeForce 6800GS 512MB PCI-E (105525)
    • Primary (system) HDD: Western Digital 74GB "Raptor" 10k RPM SATA/150 8MB Cache (55454)
    • Secondary (work) HDD: Western Digital Caviar SE 250GB 7200RPM SATA2/300 16MB Cache (94403)
    • Tertiary (music etc) HDD: Seagate Baracuda V 120GB SATA (115417) -added from old system
    • Keyboard: Microsoft Natural Ergonomic Keyboard 4000 (97577)
    • Case: Antec P180 EU Aluminium Super Miditower (91721)
    • PSU: Antec NEO HE500GB 500W Modular PSU With 80mm Low Speed/noise Fan 18db (99137)
    • VGA Cooling:  2 x Zalman (VF900-CU) Active VGA Cooler (110237)
    • Sound card: Creative Audigy 2 (Taken from the previous machine)
    • Speakers: Altec Lansing ADA-995 -absolute beasts, I can't turn them above 10% while in the office, the sound from them is superb if you can afford them (Taken from the previous machine)

    As for how it goes? Well, awesome is an understatement, it's a real step-up from my old machine (a Dell Dimension 8300 as featured in Computer Buyer August 2003) and I would say I'm an above average user. I've not tried measuring the noise levels produced from it but more often than not I have to check the lights on the keyboard to make sure it's on in the morning.

    If I were re-building the system again, I would however swap the motherboard for the deluxe version as my chipset cooler fan has been a little noisy in the past (however ASUS replaced that free of charge for me). I'm planning on replacing it with a passive cooler though as this one sometimes rattles.

    The upgrade to the Zalman VGA coolers are an absolute must, I've routed the speed controllers out through the front of the machine which allows me to control their speed easily without altering the case at all. The difference in noise level is phenomenal and I rarly run them above the minimum setting. My VGA cards from memory (I've taken off the temp monitor) were running around 30C while playing Need For Speed Most Wanted on max graphics settings.

    My PC -what's it made of?
    Useful Links:  #  digg it!  del.icio.us  Technorati  email it!  Post CommentsComments [1]  Trackback LinkTrackback
    CategoriesTags: Business | The Site Doctor
    # Tuesday, January 16, 2007

    Allmightys launched

    Tuesday, January 16, 2007 6:01:33 PM (GMT Standard Time, UTC+00:00)

    Before Christmas we pitched to develop a web site for a friends new idea, we didn't get the project sadly. However last night I got a mailer stating that it was launched so in an effort to help the site get into the rankings a little more and to show no hard feelings (GRRR) I thought I'd post a link here :)

    Good luck Filip and Kon! I hope it works out for you.

    The mailer he sent out is too wide to fit on here sadly but here's the spiel (typos and all :P)!

    We are proud to announce the launch of Allmightys.com and would like to welcome you to our homepage
    We at Allmightys.com want YOUR ideas and designs!
    We want to print them on high quality, comfortable and sweat-shop free T-shirts and we want
    YOU to take credit for them and make some money too!
    Did you ever want that special T-shirt but could never find anything similar to buy?
    Do you ever look at other T-shirts and think that you could do so much better?
    Do you want to see other people wearing your design as they walk past you?
    YES?
    Then..
    Enter our Launch Competition 2007



    Please sign up, send us your design and we will get the public to decide how great it truly is!

    Deadline for submissions is 15th February 2007 (11pm GMT)
    Thats only a month away, so get on it!

    Once we have collected all the designs we will launch our online voting process
    where you and your friends can vote for your favourites. The top three designs win and get sold...
    You will recieve € 2 (gold), € 1 (silver) or € 0.50 (bronze) for every t-shirt we sell with your design on it!

    Once we have collected all the designs we will launch our online voting process
    where you and your friends can vote for your favourites. The top three designs win and get sold...
    You will recieve € 2 (gold), € 1 (silver) or € 0.50 (bronze) for every t-shirt we sell with your design on it!

    So dont waste any time and visit Allmightys.com NOW!
    If you want to see how it works, click here...
    If you want to know more about us, click here...
    If you want to comment, click here..

    Allmightys.com is brought to you by:

    Filip Visnjic is a qualified architect currently working on some physical internet installations for a bar and art gallery in Hackney Central, London. He is also involved in a number of other web based projects. He is a director at WAG and also teaches architecture at the University of Westminster on degree, diploma and MA courses as well as on the BA Art and Design course at Central St. Martins School of Art and Design.
    He is married, lives in North London and loves everything electronic that goes beep.

    Konstantin von Berg is a qualified architect and works for a number of different practices. He is currently involved in the design of a small hotel in Berlin. He also freelances as a graphic designer, working all aspects of corporate identity development, layout and print stuff. He travels frequently between Berlin and London thanks to low cost airlines.
    He lives in Berlin and loves contemporary art and comic books.

    Dimitri Raab is the one who takes care of the finances. He also works as an accountant for an art gallery and a designer furniture store in Berlin besides being a fan of Hertha BSC, the local heroes.
    He is married, lives in Berlin and loves Ska and punk rock.

    The designs are printed in Berlin on T-Shirts made by American Apparel.

    All rights reserved Allmightys.com 2007

    Allmightys launched
    Useful Links:  #  digg it!  del.icio.us  Technorati  email it!  Post CommentsComments [1]  Trackback LinkTrackback
    CategoriesTags: Business | Design | General | The Site Doctor
    # Tuesday, January 02, 2007

    New Year -new blog layout

    Tuesday, January 02, 2007 10:13:23 PM (GMT Standard Time, UTC+00:00)

    I’ve never really been happy with the look and feel of this blog and felt that it needed jazzing up a little –especially now I’m getting more and more hits on it but life got in the way and as ugly as it was it did however do the job.

    Over Christmas though I decided it was time to bite the bullet and cut to the chase etc and update it. The blog was running on DasBlog v1.8 so while re-working the theme I would also update it to the latest version v1.9.

    This is the final result, it’s still a work in progress as I would like to improve the XHTML compliance but as usual time got the better of me so that’s something that will have to be fixed later. It’s certainly an improvement over the old blog though don’t you think?

    Over the next few weeks/months I’ll finish editing the source to improve it’s compliance and also update my photo album so it’s more in-line with this site. Don’t forget www.thesitedoctor.co.uk is having a revamp in 2007 too.

    So, worth the effort? Here's the old layout:

    The Old Blog Layout

    New Year -new blog layout
    Useful Links:  #  digg it!  del.icio.us  Technorati  email it!  Post CommentsComments [1]  Trackback LinkTrackback
    CategoriesTags: Business | Christmas | The Site Doctor
    # Friday, June 09, 2006

    New TSD Design

    Friday, June 09, 2006 5:08:07 PM (GMT Daylight Time, UTC+01:00)

    Ok, The Site Doctor has moved on a fair amount since I started it up, we started off with a somewhat techy design (Version 1) which at the time I loved but as time went on felt it was somewhat cheesy so it was replaced with Version 2 in September 2004 and this has remained the face of The Site Doctor ever since. It’s a nice site but as far as the code quality is concerned it’s terrible, not to mention to SEO issues (to say the least!)


    Site Design 1


    Site Design 2


    Site Design 3?

    In the past both designs were tabular based and didn’t care too much for accessibility standards which are now at the fore-front of our minds so we felt it was once again time for a change, but what to do? Although I dabble and with enough time I can come up with some snazzy designs, this time I felt it was necessary to have someone “in the know” to put something together for us.

    Mike from Butterfly Media stepped up to the mark with some great concepts, the current design he’s finalising for us is based on the following concepts (click the image to see the next example image): The New TSD design

    Watch this space for an update in the next few weeks. I hope to have the final TSD design live shortly after I return from holiday along with a few other, well, niceties :-)

    I'd be interested to hear other people's thoughts on the new design

    New TSD Design
    Useful Links:  #  digg it!  del.icio.us  Technorati  email it!  Post CommentsComments [2]  Trackback LinkTrackback
    CategoriesTags: ASP.Net | SEO | The Site Doctor