Tim

Footprints in the snow of a warped mind

Wednesday, July 05, 2006

Where to find me

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

Business Protection by Crisis Cover

Tag Cloud

AJAX (4) Analysis (1) ASP (6) ASP.Net (56) Error Reporting (4) Web Service (2) WSDL (1) Atlas (2) Born In The Barn (1) Business (85) Business Start-up Advice (28) Client (16) Expanding Your Business (20) Recruitment (1) C# (20) Canoeing (4) Canoe Racing (5) Cheshire Ring Race (5) Racing (2) Training (4) CIMA (1) Cisco (1) 7970G (1) CMS (1) Code Management (1) Cohorts (1) Commerce4Umbraco (1) Content (1) Content Management (1) Content Management System (1) CSS (3) dasBlog (5) DDD (1) Design (10) Icons (1) Development (21) eCommerce (8) Employment (2) General (39) Christmas (6) Fun and Games (11) Internet (22) Random (46) RX-8 (8) Helpful Script (3) Home Cinema (2) Hosting (2) HTML (1) IIS (11) iPhone (1) JavaScript (4) jQuery (1) Marketing (6) Email (1) Multipack (1) MVC (1) Networking (3) Nintendo (1) Nuget (1) OS Commerce (1) Payment (1) Photography (1) PHP (1) PowerShell (2) Press Release (1) Productivity (2) Random Thought (1) Security (2) SEO (5) Server Maintenance (6) Server Management (11) Social Media (2) Social Networking (3) Experiment (1) Software (10) Office (5) Visual Studio (13) Windows (4) Vista (1) SQL (8) SQL Server (19) Statistics (1) Stored Procedure (1) TeaCommerce (1) Testing (2) The Site Doctor (124) Turnover Challenge (1) Twitter (3) uCommerce (9) Umbraco (29) 2009 (1) 2011 (1) Web Development (65) WebDD (33) Wii (1) XSLT (1)

Blog Archive

Search

<July 2006>
SunMonTueWedThuFriSat
2526272829301
2345678
9101112131415
16171819202122
23242526272829
303112345

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!

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)

© 2012 Tim Gaunt.

Sign In

# Wednesday, July 05, 2006

The Art of complaining

Wednesday, July 05, 2006 11:22:23 AM (GMT Daylight Time, UTC+01:00)

I don’t know about you, but personally I’m not good at complaining, I don’t like complaining and I don’t do it very often –except for when I feel it’s really justified. This past weekend however gave me cause to readjust my thinking.

What happened this weekend? Well Stacey went off for her usual expensive haircut in preparation for our forthcoming holiday, it’s her little treat that she always looks forward to, often planning an entire day around the event. Saturday was no exception, she was pretty upbeat when leaving the house at some ridiculously early time but on her return it was a different story.

When arriving at Halesowen she realised she had no change for the car park so popped into the local charity shop asking to get some change, instead of offering change the helper refused, which is a shame as we usually make a donation when someone’s kind and helps us out. So Stacey offered to buy something and donate it back in order to get some change. This made her 10minutes late for her appointment. When getting to the hairdressers, the assistant informed her that because she was late she could only do half the job she was going to (half head of colouring –don’t ask me…). Even though we’re going on holiday and she wants to look her best, despite having reason to, Stacey didn’t complain and let her get on with it.

I’m not totally up on the procedure but apparently you have dye added and then you sit under a heater. Well bearing in mind she was late, after having the colour applied she had to wait 5-10mins for a heater to become available –this wasn’t because she missed the slot, they just didn’t have enough equipment. While Stacey was waiting the hairdresser went off for a smoke –why didn’t she use this time to complete the job she was meant to? I don’t know…

After she had finished having her hair done, she had her eyebrows done, on returning a few moments later, the hairdresser was sitting chatting to another hairdresser –this was at least 15mins after Stacey finished which made her think “being late clearly didn’t mess up their schedule too much –she’s spent the time chatting when she could have been finishing my hair” and I have to say so did I when I was told.

Then apparently when leaving she mentioned that she was going on holiday to which the hairdresser went white and said that she’d completely forgotten –even though when booking the appointment she made a big fuss about it all. I realise that she may have a lot of customers and it’s difficult to remember everyone, but this is customer service, this is why Stacey used to pay around £100 a time -the superior service.

We worked it out and with all the products she buys and the fact she goes at least every two months, as a customer Stacey is easy worth over £600pa. Not only that, in the past she has always raved about the service –something I doubt she’ll be doing. It’s a shame to see a company that has been built on a good reputation, excellent service and forward thinking getting so complacent.

Instead of complaining on the spot, Stacey came home annoyed at how she had been treated, disappointed with the service which usually makes her feel like a million dollars. Why didn’t she complain? What would have happened if she had? We’ll never know but we will be letting the owner know about the service received because as a Small Business owner, if a client felt like Stacey I would want to know.

Then yesterday I was going through the company accounts and noticed that Fasthosts (who we have a shared server account with) have started charging separately for a service that was billed together, namely their “Standard Hosting Plan”. Originally it included 3 advanced inboxes, Web Statistics and a Web Control Panel however without any warning this has been changed to 3 advanced inboxes, Web Statistics and access to an API allowing developers to program their own control panel. Access to the Web Control Panel is now billed separately. Ignoring the inconvenience and underhand tactics used, this surely can’t be legal –can it?

This isn’t the first time Fasthosts have done something like this and I’m sure it won’t be the last so I thought I should complain but I’ve not got very far…

…yet.
 
For some time now I have always felt that if I only complain when it’s due it’ll have a greater effect but then it struck me, how is anyone to know that I don’t complain about everything to everyone? (The flaw in my justification some might argue!) Ok I feel good in myself knowing that I only complain when it’s justified but am I loosing out in the long run? Are we too tolerant as a society and are people who complain frequently getting further?

I guess this could have come under a heading of customer service but again that’s a rant for another day.

 

Don't forget to follow me on Twitter.

The Art of complaining
Useful Links:  #  digg it!  del.icio.us  Technorati  email it!  Post CommentsComments [0]  Trackback LinkTrackback
CategoriesTags: Random
# Tuesday, July 04, 2006

Stopping Outlook Blocking Attachments

Tuesday, July 04, 2006 11:46:14 AM (GMT Daylight Time, UTC+01:00)

I know this is covered all over the web but I'm forever forgetting it so if Outlook has started blocking email attachments i.e. ASP files you can easily adjust this by adding a String Key called "Level1Remove" to the registry, navigate to: Current User --> Software --> Microsoft --> Office (x) --> Outlook --> Security (where (x) is the version of office you are running: 9 = Outlook 2000, 10 = Outlook 2002 11 = Outlook 2003

Then right click and choose "New" and "String Key", then add in a list of the attachments you would like to allow seperated by semi-colons i.e.:
.exe;.mdb;.url;.asp;.aspx;.zip

 

Don't forget to follow me on Twitter.

Stopping Outlook Blocking Attachments
Useful Links:  #  digg it!  del.icio.us  Technorati  email it!  Post CommentsComments [0]  Trackback LinkTrackback
CategoriesTags: Office
# Monday, July 03, 2006

Pricing your work

Monday, July 03, 2006 5:05:22 PM (GMT Daylight Time, UTC+01:00)

There are two questions I get asked a lot by people who are thinking about becoming self-employed and even those already running a business. The first is How do you get the work? –this is something I’ll blog about in more detail later as the second is what I want to talk about today and that’s How much should I charge?

When setting out, this may seem a really difficult question to answer but in actual fact it can easily be calculated out and it’s critical to the success (or failure) of your business. When we first started out, I was plucking figures from thin air, when someone asked my how much a website would cost I decided a figure that I felt would compensate me for the time input. This is not what I would suggest doing!

Now that we are considering outsourcing work with the view to employing some new wonderful people to help out on the creation of our sites I felt it was time to work out a base rate from which we should quote. After some pondering I feel I’ve come up with a solution that can easily be re-used on any business.

Firstly, add up all your expenses (equipment, software, phone, ISP, rent, taxes, etc.) –it’s worth taking some time over this to make sure you include as many expenses as possible. Then add what you would like to get paid (your yearly salary). Finally, because you would like to grow your business add some profit (somewhere between 10% and 15% is about right). The figure you’re left with is the turnover you company is aiming for.

Now you need to work that figure back to an hourly rate. Lets assume you want to allow for 4 weeks holiday -you’ll have a potential of 48 working weeks available to you. Now, assuming you’re going to be a slacker and only work a 40hr week, following on from my previous post of how much time was spent on non-development work, we have to assume that we’ll be spending 16hrs of our 40hr week on non-development (yes we do have to take this into account –you’re still working!!)

This leaves us with 24 billable hours every week, this equates to 1,152 billable hours a year. To calculate your hourly rate, simply divide the required turnover by the billable hours.

Let’s try an example:

Expenses
Server Costs: £100pm = £1,200pa
Rent: £1000pm = £12,000
Phone Bill: £29.99pm = £359.88pa
Electricity: £40pm = £480pa
Total Costs: £14,039.88

Salary: £100,000
Profit: £114,039.88 + 15%
Required Turnover: £131,145.90

[Hourly Rate] = [Required Annual Turnover] / [Available Annual Billable Hours]
£131,145.90 / 1152 = £113.84
So in our example, your hourly rate should be £113.84

Notice in my example I have included the server costs which, in many cases will be covered by clients but what happens if they don’t pay or you don’t fill the space? You’ll have to pay so factor it in and any space you sell will be additional profit which you can choose to pass back to the client or save to reward your staff!

This figure should is a base rate, it is always worth factoring in the client when estimating on the work, for example, if you have a large corporate client, many of them will expect to pay a higher hourly rate and odd as it sounds are concerned when it’s too cheap so offset these clients against the smaller clients. Remember: you can be turned down for being too cheap as well as being too expensive!

To clarify that point a little further: If you have a small client who cannot afford £115ph and a large client who is happy with £175ph development costs, for every hour you work for the large client, you can afford to offer the small client a reduction:
10hours @ £115ph = £1150
5hours @ £175ph + 5hours @ £55ph = £1150

So when estimating work, look at it on a yearly basis –having business is better than no business, just don’t be a busy fool.

As a closing note, I would like to add that if your hourly rate sounds too high for your clients, you have to think about what they’re getting –You! You may be expensive but as long as your work is of a high standard price doesn’t matter. The alternative is to find areas to cut your expenses (or take a salary reduction!) so I know which I'd rather do...

I hope you’re starting out in business and when you do I hope you make it! Good Luck.

Update: I should just add, the figures in the example are not real world (or ours) they're merely for demonstration!

Update 2: I feel I should also point out that although we have a base rate that helps us estimate on work and allow us to quickly determine how profitable the project is, we rarely work on an hourly basis as we prefer to quote on a project basis -something which I'll write about another day.

 

Don't forget to follow me on Twitter.

Pricing your work
Useful Links:  #  digg it!  del.icio.us  Technorati  email it!  Post CommentsComments [3]  Trackback LinkTrackback
CategoriesTags: Business

Bulk Granting EXECTUTE Permission on SQL Server

Monday, July 03, 2006 3:42:17 PM (GMT Daylight Time, UTC+01:00)

Here's some code I regularly find useful when going from a dev server to a production server (or changing the username), I'm sure there's a more automated way but for a quick fix...

DECLARE @username varchar(100)
SET @username = 'xyz'
SELECT
    'GRANT EXECUTE ON ' + name + ' TO ' + @username
FROM
    sysobjects
WHERE
    xtype = 'p'
AND
     LEFT(name, 4) = 'PRE_'

The code is simple, it lists all the stored procedures with a set prefix and generates the T-SQL to grant EXECUTE permissions to a given user.

To use it, set the username, update the last line if you would like to limit it's bounds (we prefix ours for clarity i.e. SProcs with a prefix of CMS_ are used in the Content Management System) and run it, then copy the results and run them in a Query Analyser.

 

Don't forget to follow me on Twitter.

PAS 78 available for free download

Monday, July 03, 2006 9:20:18 AM (GMT Daylight Time, UTC+01:00)

A while ago the Disability Rights Commission (DRC) in collaboration with BSI released a guide to good practice in commissioning accessible websites called Publicly Available Specification (PAS) 78. The guidelines outline good practice in commissioning websites that are accessible to and usable by disabled people.

Originally it was made available at a charge but the nice people at the Disability Rights Commission have decided to make it publicly available for free! You can download your copy at: http://www.drc-gb.org/library/website_accessibility_guidance/pas_78.aspx

The guide gives recommendations for:

  • The management of the process of, and guidance on, upholding existing W3C guidelines and specifications
  • Involving disabled people in the development process and using the current software-based compliance testing tools that can assist with this.

It is applicable to all public and private organizations that wish to observe good practice under the existing voluntary guidelines and the relevant legislation on this subject and is intended for use by those responsible for commissioning public-facing websites and web-based services.

 

Don't forget to follow me on Twitter.

PAS 78 available for free download
Useful Links:  #  digg it!  del.icio.us  Technorati  email it!  Post CommentsComments [0]  Trackback LinkTrackback
CategoriesTags: 
# Sunday, July 02, 2006

Internet acronyms -What do they mean and when to use them

Sunday, July 02, 2006 4:09:08 PM (GMT Daylight Time, UTC+01:00)

Having been chatting on the net for a long time, I use internet acronyms in most of my day-day conversations over instant messengers (IMs). When you get used to them they're massive timesavers but before then it must seem like they're leaving out a lot of letters -producing gobbledy goop! Although some acronyms are phonetically based, many are are not and often confusing, so sparked by a number of people new to IMs constantly stopping me and asking what it meant (so not making it a timesaver at all while I either typed it out or found a dictionary of acronyms) I decided I would overview a list of acronyms that I use on a regular occasion as a reference point, I may add more later and I hope its of use to someone else out there (please note some of these are just ones that I've made up/use to aid development talk).

General

gtg
Got To Go
brb
Be Right Back (less than 5mins)
bbiab
Be Back In A Bit (5 - 15mins)
bbiaw
Be Back In A While (15mins +)
b
Back
wb
Welcome Back
ty
Thank You
yw
You're Welcome.
atm
At The Moment
ttyl
Talk To You Later
styl
Speak To You Later
cya
See You
cu
See You
afaik
As Far As I Know
afaiaa
As Far As I Am Aware
afaiac
As Far As I'm Concerned
afaics
As Far As I Can See
afaict
As Far As I Can Tell
b/c
Because
w/
With
w/o
WithOut
g/f
GirlFriend
b/f
BoyFriend
gl
Good Luck
omg
Oh My God
faq
Frequently Asked Question(s)
nm
Never Mind
n1
Nice One
n2s
Needless To Say
nn
Night Night
n00b
A inexperienced and / or ignorant or unskilled person (especially used in computer games)
nmp
Not My Problem
nmj
Not My Job
pwned
Beating / Defeating / Outclassing someone
lol
Laugh(ing) Out Loud
k
Ok
btw
By The Way
lmao
Laugh(ing) My Ass Off
wrt
With Regards To

Ones I don't tend to use but I frequently see

wtf
What The F***
wth
What The Hell
fo
F*** Off
fk
F*** Knows
fa
F*** All
sfa
Sweet F*** All
ffs
For F***'s Sake
po
P*** Off

Technical

w/s
Web Service
se
Search Engine
seo
Search Engine Optimisation

Smileys

:)
Smiley / Happy
:D
Mega Happy
:(
Sad
;)
Winking
:P
Sticking Toungue Out
:o
Surprised
:|
Disappointed
:S
Confused / Worried
:#
Don't Tell Anyone
:'(
Crying
>:(
Annoyed
:@
Angry
|-)
Sleepy / Tired / Yawning

Actions

When a phrase is contained in <> it generally refers to an action the user is doing

<g>
Grin
<bg>
Big Grin
<vbg>
Very Big Grin
<vbeg>
Very Big Evil Grin

When a is contained in >< it means the user is referring to himself
i.e. >Thinks its too late to be writing an article<

It may also be worth checking out: Google as there's many more complete dictionaries out there!

 

Don't forget to follow me on Twitter.

# Saturday, July 01, 2006

Time on the phone –wasted time?

Saturday, July 01, 2006 4:14:26 PM (GMT Daylight Time, UTC+01:00)

After a somewhat hectic week on the phone 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 tried to look at it from another point of view, I could have spent the time developing some weird and wonderful new creation for a client however, this phone time was doing something else –it was promoting the 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.

Out of interest I decided to work out how much time I spent on non-development hours and I was somewhat shocked, in the average week I would estimate that at least 2 days is spent on non-development work, that includes phone calls, invoicing, letter writing, emailing etc. It's a staggering ammount but, all part of running a business.

 

Don't forget to follow me on Twitter.

Time on the phone –wasted time?
Useful Links:  #  digg it!  del.icio.us  Technorati  email it!  Post CommentsComments [0]  Trackback LinkTrackback
CategoriesTags: Business
# Friday, June 30, 2006

Complete Lifecycle of an ASP.Net page and controls

Friday, June 30, 2006 9:01:00 AM (GMT Daylight Time, UTC+01:00)

Julian Voelcker raised a question on the MsWebDev mailing list the other day that I've been meaning to investigate for a while as it's something that I have to double check on every time I write a new custom control -the various lifecycles an ASP.Net page.

Many people have blogged about the lifecycle of an ASP.Net Page or Master Page but every time I need to find the complete lifecycle of a control it’s not so easy. Today I wrote a couple of test pages to generate a reference.

The pages are very simple, I just overrode every method I could find and wrote to the trace. For completeness when the method called its base I wrapped it with “Start MethodName” and “End MethodName” (if you look at the trace outputs below you will see why). I did this for the Master Page (.master), Page (.aspx), User Control (.ascx) and Web Control (.cs), the page structre was simple:

  • Master Page
    • Page
      • User Control
      • Web Control

For clarity I’ve split the produced trace into 5 individual reference sections:

ASP.Net 2.0 Master Page Life Cycle

  • Start Construct()
  • End Construct()
  • Start FrameworkInitialize()
  • End FrameworkInitialize()
  • Start AddParsedSubObject(object obj)
    • CreateControlCollection()
    • Start AddedControl(Control control, int index)
    • End AddedControl(Control control, int index)
  • End AddParsedSubObject(object obj)
  • Start AddParsedSubObject(object obj)
    • Start AddedControl(Control control, int index)
    • End AddedControl(Control control, int index)
  • End AddParsedSubObject(object obj)
  • Start AddParsedSubObject(object obj)
    • Start AddedControl(Control control, int index)
    • End AddedControl(Control control, int index)
  • End AddParsedSubObject(object obj)
  • Start AddParsedSubObject(object obj)
    • Start AddedControl(Control control, int index)
    • End AddedControl(Control control, int index)
  • End AddParsedSubObject(object obj)
  • Start AddParsedSubObject(object obj)
    • Start AddedControl(Control control, int index)
    • End AddedControl(Control control, int index)
  • End AddParsedSubObject(object obj)
  • ResolveAdapter()
  • Start OnInit(EventArgs e)
  • End OnInit(EventArgs e)
  • Start TrackViewState()
  • End TrackViewState()
  • Start OnLoad(EventArgs e)
    • Page_Load(object sender, EventArgs e)
  • End OnLoad(EventArgs e)
  • Start EnsureChildControls()
    • ResolveAdapter()
    • Start CreateChildControls()
    • End CreateChildControls()
  • End EnsureChildControls()
  • Start OnPreRender(EventArgs e)
  • End OnPreRender(EventArgs e)
  • SaveViewState()
  • SaveViewState()
  • HasControls()
  • Start RenderControl(HtmlTextWriter writer)
    • Start Render(HtmlTextWriter writer)
      • Start RenderChildren(HtmlTextWriter writer)
      • End RenderChildren(HtmlTextWriter writer)
    • End Render(HtmlTextWriter writer)
  • End RenderControl(HtmlTextWriter writer)

ASP.Net 2.0 Page Life Cycle

  • ResolveAdapter()
  • DeterminePostBackMode()
  • Begin PreInit
    • Start OnPreInit(EventArgs e)
    • End OnPreInit(EventArgs e)
    • HasControls()
    • Start RemovedControl(Control control)
    • End RemovedControl(Control control)
    • ResolveAdapter()
    • Start AddedControl(Control control, int index)
    • End AddedControl(Control control, int index)
  • End PreInit
  • Begin Init
    • ResolveAdapter()
    • Start OnInit(EventArgs e)
    • End OnInit(EventArgs e)
    • Start TrackViewState()
    • End TrackViewState()
  • End Init
  • Begin InitComplete
    • Start OnInitComplete(EventArgs e)
    • End OnInitComplete(EventArgs e)
  • End InitComplete
  • Begin PreLoad
    • Start OnPreLoad(EventArgs e)
    • End OnPreLoad(EventArgs e)
  • End PreLoad
  • Begin Load
    • Start OnLoad(EventArgs e)
      • Page_Load(object sender, EventArgs e)
    • End OnLoad(EventArgs e)
  • End Load
  • Begin LoadComplete
    • Start OnLoadComplete(EventArgs e)
    • End OnLoadComplete(EventArgs e)
  • End LoadComplete
  • Begin PreRender
    • Start EnsureChildControls()
      • ResolveAdapter()
      • Start CreateChildControls()
      • End CreateChildControls()
    • End EnsureChildControls()
    • Start OnPreRender(EventArgs e)
    • End OnPreRender(EventArgs e)
  • End PreRender
  • Begin PreRenderComplete
    • Start OnPreRenderComplete(EventArgs e)
    • End OnPreRenderComplete(EventArgs e)
  • End PreRenderComplete
  • SaveViewState()
  • Begin SaveState
    • SaveViewState()
    • HasControls()
    • Start SavePageStateToPersistenceMedium(object state)
      • ResolveAdapter()
    • End SavePageStateToPersistenceMedium(object state)
  • End SaveState
  • Begin SaveStateComplete
    • Start OnSaveStateComplete(EventArgs e)
    • End OnSaveStateComplete(EventArgs e)
  • End SaveStateComplete
  • Begin Render
    • CreateHtmlTextWriter(System.IO.TextWriter tw)
    • Start RenderControl(HtmlTextWriter writer)
      • Start Render(HtmlTextWriter writer)
        • Start RenderChildren(HtmlTextWriter writer)
        • End RenderChildren(HtmlTextWriter writer)
      • End Render(HtmlTextWriter writer)
    • End RenderControl(HtmlTextWriter writer)
  • End Render
  • CreateHtmlTextWriter(System.IO.TextWriter tw)

ASP.Net 2.0 User Control Life Cycle

  • Start Construct()
  • End Construct()
  • Start FrameworkInitialize()
  • End FrameworkInitialize()
  • ResolveAdapter()
  • Start OnInit(EventArgs e)
  • End OnInit(EventArgs e)
  • Start TrackViewState()
  • End TrackViewState()
  • Start OnLoad(EventArgs e)
    • Page_Load(object sender, EventArgs e)
  • End OnLoad(EventArgs e)
  • Start EnsureChildControls()
    • ResolveAdapter()
    • Start CreateChildControls()
    • End CreateChildControls()
  • End EnsureChildControls()
  • Start OnPreRender(EventArgs e)
  • End OnPreRender(EventArgs e)
  • SaveViewState()
  • SaveViewState()
  • HasControls()
  • Start RenderControl(HtmlTextWriter writer)
    • Start Render(HtmlTextWriter writer)
      • Start RenderChildren(HtmlTextWriter writer)
      • End RenderChildren(HtmlTextWriter writer)
    • End Render(HtmlTextWriter writer)
  • End RenderControl(HtmlTextWriter writer)

ASP.Net 2.0 Web Control Life Cycle

  • Constructor Test()
  • Start ApplyStyleSheetSkin(Page page)
  • End ApplyStyleSheetSkin(Page page)
  • ResolveAdapter()
  • Start OnInit(EventArgs e)
  • End OnInit(EventArgs e)
  • Start TrackViewState()
  • End TrackViewState()
  • Start OnLoad(EventArgs e)
  • End OnLoad(EventArgs e)
  • Start EnsureChildControls()
    • ResolveAdapter()
    • Start CreateChildControls()
    • End CreateChildControls()
  • End EnsureChildControls()
  • Start OnPreRender(EventArgs e)
  • End OnPreRender(EventArgs e)
  • SaveViewState()
  • SaveViewState()
  • HasControls()
  • Start RenderControl(HtmlTextWriter writer)
    • Start Render(HtmlTextWriter writer)
      • Start RenderBeginTag(HtmlTextWriter writer)
        • Start AddAttributesToRender(HtmlTextWriter writer)
        • End AddAttributesToRender(HtmlTextWriter writer)
      • End RenderBeginTag(HtmlTextWriter writer)
    • Start RenderContents(HtmlTextWriter writer)
      • Start RenderChildren(HtmlTextWriter writer)
      • End RenderChildren(HtmlTextWriter writer)
    • End RenderContents(HtmlTextWriter writer)
    • Start RenderEndTag(HtmlTextWriter writer)
    • End RenderEndTag(HtmlTextWriter writer)
    • End Render(HtmlTextWriter writer)
  • End RenderControl(HtmlTextWriter writer)

Complete Trace

Category Message
Page ResolveAdapter()
Page DeterminePostBackMode()
aspx.page Begin PreInit
Page Start OnPreInit(EventArgs e)
Page End OnPreInit(EventArgs e)
MasterPage Start Construct()
MasterPage End Construct()
Page HasControls()
Page Start RemovedControl(Control control)
Page End RemovedControl(Control control)
MasterPage Start FrameworkInitialize()
MasterPage End FrameworkInitialize()
MasterPage Start AddParsedSubObject(object obj)
MasterPage CreateControlCollection()
MasterPage Start AddedControl(Control control, int index)
MasterPage End AddedControl(Control control, int index)
MasterPage End AddParsedSubObject(object obj)
MasterPage Start AddParsedSubObject(object obj)
MasterPage Start AddedControl(Control control, int index)
Page ResolveAdapter()
MasterPage End AddedControl(Control control, int index)
MasterPage End AddParsedSubObject(object obj)
MasterPage Start AddParsedSubObject(object obj)
MasterPage Start AddedControl(Control control, int index)
MasterPage End AddedControl(Control control, int index)
MasterPage End AddParsedSubObject(object obj)
UserControl Start Construct()
UserControl End Construct()
UserControl Start FrameworkInitialize()
UserControl End FrameworkInitialize()
CustomWebControl Constructor Test()
CustomWebControl Start ApplyStyleSheetSkin(Page page)
CustomWebControl End ApplyStyleSheetSkin(Page page)
MasterPage Start AddParsedSubObject(object obj)
MasterPage Start AddedControl(Control control, int index)
MasterPage End AddedControl(Control control, int index)
MasterPage End AddParsedSubObject(object obj)
MasterPage Start AddParsedSubObject(object obj)
MasterPage Start AddedControl(Control control, int index)
MasterPage End AddedControl(Control control, int index)
MasterPage End AddParsedSubObject(object obj)
Page Start AddedControl(Control control, int index)
Page End AddedControl(Control control, int index)
aspx.page End PreInit
aspx.page Begin Init
Page ResolveAdapter()
MasterPage ResolveAdapter()
UserControl ResolveAdapter()
UserControl Start OnInit(EventArgs e)
UserControl End OnInit(EventArgs e)
UserControl Start TrackViewState()
UserControl End TrackViewState()
CustomWebControl ResolveAdapter()
CustomWebControl Start OnInit(EventArgs e)
CustomWebControl End OnInit(EventArgs e)
CustomWebControl Start TrackViewState()
CustomWebControl End TrackViewState()
MasterPage Start OnInit(EventArgs e)
MasterPage End OnInit(EventArgs e)
MasterPage Start TrackViewState()
MasterPage End TrackViewState()
Page Start OnInit(EventArgs e)
Page End OnInit(EventArgs e)
Page Start TrackViewState()
Page End TrackViewState()
aspx.page End Init
aspx.page Begin InitComplete
Page Start OnInitComplete(EventArgs e)
Page End OnInitComplete(EventArgs e)
aspx.page End InitComplete
aspx.page Begin PreLoad
Page Start OnPreLoad(EventArgs e)
Page End OnPreLoad(EventArgs e)
aspx.page End PreLoad
aspx.page Begin Load
Page Start OnLoad(EventArgs e)
Page Page_Load(object sender, EventArgs e)
Page End OnLoad(EventArgs e)
MasterPage Start OnLoad(EventArgs e)
MasterPage Page_Load(object sender, EventArgs e)
MasterPage End OnLoad(EventArgs e)
UserControl Start OnLoad(EventArgs e)
UserControl Page_Load(object sender, EventArgs e)
UserControl End OnLoad(EventArgs e)
CustomWebControl Start OnLoad(EventArgs e)
CustomWebControl End OnLoad(EventArgs e)
aspx.page End Load
aspx.page Begin LoadComplete
Page Start OnLoadComplete(EventArgs e)
Page End OnLoadComplete(EventArgs e)
aspx.page End LoadComplete
aspx.page Begin PreRender
Page Start EnsureChildControls()
Page ResolveAdapter()
Page Start CreateChildControls()
Page End CreateChildControls()
Page End EnsureChildControls()
Page Start OnPreRender(EventArgs e)
Page End OnPreRender(EventArgs e)
MasterPage Start EnsureChildControls()
MasterPage ResolveAdapter()
MasterPage Start CreateChildControls()
MasterPage End CreateChildControls()
MasterPage End EnsureChildControls()
MasterPage Start OnPreRender(EventArgs e)
MasterPage End OnPreRender(EventArgs e)
UserControl Start EnsureChildControls()
UserControl ResolveAdapter()
UserControl Start CreateChildControls()
UserControl End CreateChildControls()
UserControl End EnsureChildControls()
UserControl Start OnPreRender(EventArgs e)
UserControl End OnPreRender(EventArgs e)
CustomWebControl Start EnsureChildControls()
CustomWebControl ResolveAdapter()
CustomWebControl Start CreateChildControls()
CustomWebControl End CreateChildControls()
CustomWebControl End EnsureChildControls()
CustomWebControl Start OnPreRender(EventArgs e)
CustomWebControl End OnPreRender(EventArgs e)
aspx.page End PreRender
aspx.page Begin PreRenderComplete
Page Start OnPreRenderComplete(EventArgs e)
Page End OnPreRenderComplete(EventArgs e)
aspx.page End PreRenderComplete
Page SaveViewState()
MasterPage SaveViewState()
UserControl SaveViewState()
CustomWebControl SaveViewState()
aspx.page Begin SaveState
Page SaveViewState()
Page HasControls()
MasterPage SaveViewState()
MasterPage HasControls()
UserControl SaveViewState()
UserControl HasControls()
CustomWebControl SaveViewState()
CustomWebControl HasControls()
Page Start SavePageStateToPersistenceMedium(object state)
Page ResolveAdapter()
Page End SavePageStateToPersistenceMedium(object state)
aspx.page End SaveState
aspx.page Begin SaveStateComplete
Page Start OnSaveStateComplete(EventArgs e)
Page End OnSaveStateComplete(EventArgs e)
aspx.page End SaveStateComplete
aspx.page Begin Render
Page CreateHtmlTextWriter(System.IO.TextWriter tw)
Page Start RenderControl(HtmlTextWriter writer)
Page Start Render(HtmlTextWriter writer)
Page Start RenderChildren(HtmlTextWriter writer)
MasterPage Start RenderControl(HtmlTextWriter writer)
MasterPage Start Render(HtmlTextWriter writer)
MasterPage Start RenderChildren(HtmlTextWriter writer)
UserControl Start RenderControl(HtmlTextWriter writer)
UserControl Start Render(HtmlTextWriter writer)
UserControl Start RenderChildren(HtmlTextWriter writer)
UserControl End RenderChildren(HtmlTextWriter writer)
UserControl End Render(HtmlTextWriter writer)
UserControl End RenderControl(HtmlTextWriter writer)
CustomWebControl Start RenderControl(HtmlTextWriter writer)
CustomWebControl Start Render(HtmlTextWriter writer)
CustomWebControl Start RenderBeginTag(HtmlTextWriter writer)
CustomWebControl Start AddAttributesToRender(HtmlTextWriter writer)
CustomWebControl End AddAttributesToRender(HtmlTextWriter writer)
CustomWebControl End RenderBeginTag(HtmlTextWriter writer)
CustomWebControl Start RenderContents(HtmlTextWriter writer)
CustomWebControl Start RenderChildren(HtmlTextWriter writer)
CustomWebControl End RenderChildren(HtmlTextWriter writer)
CustomWebControl End RenderContents(HtmlTextWriter writer)
CustomWebControl Start RenderEndTag(HtmlTextWriter writer)
CustomWebControl End RenderEndTag(HtmlTextWriter writer)
CustomWebControl End Render(HtmlTextWriter writer)
CustomWebControl End RenderControl(HtmlTextWriter writer)
MasterPage End RenderChildren(HtmlTextWriter writer)
MasterPage End Render(HtmlTextWriter writer)
MasterPage End RenderControl(HtmlTextWriter writer)
Page End RenderChildren(HtmlTextWriter writer)
Page End Render(HtmlTextWriter writer)
Page End RenderControl(HtmlTextWriter writer)
aspx.page End Render
Page CreateHtmlTextWriter(System.IO.TextWriter tw)
 

Don't forget to follow me on Twitter.

# Monday, June 26, 2006

What's the RX-8 Look Like?

Monday, June 26, 2006 9:19:24 AM (GMT Daylight Time, UTC+01:00)

It's been brought to my attention that some people out there STILL don't know what the RX-8 looks like so I thought I'd post a little photo of it here for you:


Visit Mazda's RX-8 Showcase Site

I'll try and post a few more later of the interior etc.

 

Don't forget to follow me on Twitter.

What's the RX-8 Look Like?
Useful Links:  #  digg it!  del.icio.us  Technorati  email it!  Post CommentsComments [0]  Trackback LinkTrackback
CategoriesTags: RX-8
# Sunday, June 25, 2006

Growing Old Gracefully

Sunday, June 25, 2006 10:55:39 PM (GMT Daylight Time, UTC+01:00)

This morning we had the TV on while getting ready to go out and a new L'Oreal advert came on. If you haven't seen it, it has features Jane Fonda telling us how the product helps firm the skin etc, that she's 68 and look how great her skin is -the usual junk. Although the advert doesn't actually say the product is why she "looks so good" it leads you to believe that it is (great marketing btw) anyway, where am I going with this (other than stating the obvious)? Well, when the advert finishedI was left thinking "ok, so this cream makes your skin feeling younger" and "L'Oreal is the answer to all your old age prayers" but surely they're contradicting themselves a touch? Firstly they've got this attractive 68year old promoting this product as well as a 20-something saying "Use this and you won't look old when you're older". Well if Jane's 68 and looks like that (yeah yeah with all that plastic surgery etc) then why invest thousands in the anti-aging creams? -You can just use that one when you're 68. Oh and if she's 68 -don't people think "Hang on, she looks good, she's been around well before L'Oreal started pimping these promises so why should I buy it?" -just a thought! As I keep saying to Stacey, it's been long known that it's all in the genes -any guy that wants to know what his lovely lady is going to look like at 40 all he needs to do is look at her mum...

Here's a shot of Jane for those of you who don't know who she is/was (I didn't know it was her until I checked out the L'Oreal site ;-))


L'Oreal Website (For the product of the advert)

On that note, another advert was listing the signs a woman had noted of getting older -a grey/white hair here-or-there, a wrinkle or two and loosing her eyesight/hearing which again got me thinking, I don't think I'll even notice getting old. During the summer my hair goes white in the sun, I can't see, my hearing's not great at the best of times and as Stacey keeps reminding me I've already got wrinkles on my forehead so...

 

Don't forget to follow me on Twitter.

Growing Old Gracefully
Useful Links:  #  digg it!  del.icio.us  Technorati  email it!  Post CommentsComments [0]  Trackback LinkTrackback
CategoriesTags: Random