How To Hire A Web Company Archives - Digital Tool Factory blog How To Hire A Web Company Archives - Digital Tool Factory blog

The Digital Tool Factory Blog

How to explain caching to clients

'Translator' photo (c) 2010, Mace Ojala - license: http://creativecommons.org/licenses/by-sa/2.0/I recently implemented a quick performance fix on a client’s site recently by implementing caching.  I explain caching with the following metaphor.

Imagine that your site is a book.  A book written in a weird mix of Latin, Sanskrit and Old Norse.    It’s precise,  complicated and requires translation into English by an expert translator before it can be read by the public.

Your web server translates the book.  Anytime, someone tries to read the book they cannot read it directly; they need someone (the web server) to translate the book.  This can take a lot of time and energy for the translator to do, but it has to be done.

 

A simple version of the process

To clarify, the process works like this

  1. Person makes a request, i.e. “what does that book say? [Non Resource Intensive Step]
  2. The translator looks at the book, and makes a careful translation into modern day English of the book from the original Latin, Sanskrit, and Old Norse.    This can take a long time [Resource Intensive Step].
  3. After the translator completes the translation he sends it on it’s way to the person who made the request [Non Resource Intensive Step].
  4. The person who makes the request receives the translation and the interaction is complete [Non Resource Intensive Step].

That all sounds good, but the problem is that the four step process has to happen each and every time anyone makes a request, especially the resource intensive step two.  So, if a web page gets 1000 requests an hour, resource intensive step #2 runs 1000 times.

 

The first request with caching

Now imagine if the translator makes a copy of the English translation after he sends it out the first time.  The first time someone makes a request for a translation the process looks like this.

  1. Person makes a request, i.e. “what does that book say? [Non Resource Intensive Step]
  2. The translator checks to see if there are any photocopies of the translation that are less than an hour old [Non Resource Intensive Step]
  3. The translator looks at the book, and makes a careful translation into modern day English of the book from the original Latin, Sanskrit, and Old Norse.    This can take a long time. [Resource Intensive Step]
  4. After the translator completes the translation he makes photocopies of the translation. [Non Resource Intensive Step]
  5. Then the translator sends the photocopy of the translation on it’s way to the person who made the request. [Non Resource Intensive Step]
  6. The person who makes the request receives the translation and the interaction is complete. [Non Resource Intensive Step]

Subsequent requests with caching

Subsequent requests for the book look like this

  1. Person makes a request, i.e. “what does that book say? [Non Resource Intensive Step]
  2. The translator sends the photocopy of the translation on it’s way to the person who made the request. [Non Resource Intensive Step]
  3. The person who makes the request receives the translation and the interaction is complete. [Non Resource Intensive Step]

The first time someone makes a request the process runs a little slower, but since each subsequent request for the book omits all of the resource intensive steps, the whole process take up much less time and fewer resources, making for a much lower delivery time on average, e.g. for every 1000 requests for a page, resource intensive step #2 runs 1 time, not 999 times.

Making a photocopy is pretty close to caching.  The web server makes a copy of the page it just created and sends it on it’s way to web browsers.

 

What are the downsides of caching?

What are the downsides of caching, and why doesn’t everyone use it?   I’ve seen two main reasons not to use caching.

  1. The contents of the book can change unexpectedly.  If it does, then the translator is handing out old editions of the book.  That might be fine for some sites, but for others it might be catastrophic   For example, if a blog serves up a slightly out of date version of a post no one will care that much, but if a stock market application serves up old stock prices people will care a lot.  With caching, the translation/web page can be up to an hour old.
  2. It makes debugging much harder if everyone sees slightly different versions of the same thing.

That’s how I explain caching to clients.  I’ve always had people find the metaphor clear and easy to understand.


18
Mar 13


Written By Steve French

 

How to hire a web company – Who am I?

As part of my upcoming book, How to hire a web company.

Who am I?

I’m Steve French – I started Digital Tool Factory in 2002, and recently celebrated ten full years as an independent business.  Prior to that I worked at a .com startup that went nowhere, and then for an advertising agency.  That agency went out of business and I started Digital Tool Factory.  Actually I called it Creative Plumbing at first.   A poor choice in name but you have to start somewhere.

 

I originally started out as “technical muscle” for graphic design firms.  I had always specialized in implementing challenging graphic looks and feels.  That role eventually morphed into both the front-end and the back-end for websites and over the years the market for the front end development has become commoditized and I moved into back-end development, though with the advent of jquery I’ve gotten more onto the front side again as well.

 

I’ve always developed on the Microsoft Stack since 1999, largely for the reason that my boss at the time liked one particular feature of classic Active Server Pages.  I’ve stuck with the Microsoft Stack (defined as server and database) for many reasons largely because they solve the problems I have.

 

I’ve worked for many, many different companies for clients, in many different fields and industries and I’ve learned from all of them.  I am not naturally a good salesman or marketer.  However I am an excellent explainer and adviser on technical matters.  I’ve found that I have the same conversations with new clients, and the communication problems tend to happen over and over again.

 

That’s why I’m writing this book, to speed up the development process by getting the communication problems out of the way.

 


26
Nov 12


Written By Steve French

 

How to hire a web company – the new book from Digital Tool Factory

'Hire Us' photo (c) 2012, Dita Margarita - license: http://creativecommons.org/licenses/by/2.0/After talking a to many potential, and actual clients lately I have decided to expand my internal checklists stock questions into an e-book called “How To  Hire A Web Company”.   After reading this book you should get from a search engine result to a successful Client-Vendor relationship much faster, and you will find the best company, and not the best salesman.  I will show you how the web company sees their clients, and show you how to move faster towards a successful website.

 

Think of the book as an operating manual for the client-vendor relationship.

 

My tentative outline

  1. Who am I – about my experience, company, and insights
  2. Who are you –   How web companies see clients.  A practical discussion of the differences between the needs of marketing and operations departments (as seen through the eyes of a web company).
  3. Personality types – and how they affect client-vendor relationships
  4. What are your needs – Broadly speaking of course – The five kinds of web sites
  5. What technology should the site use?  – The differences in what your web company cares about and what you should care about.  What you should care about, and what you should not care about
  6. Cheap and easy ways to make your web company feel loved (and get better service and a better deal) – this chapter will go into the non-intuitive things your web company will care about that probably never occurred to you.
  7. Checking references, what to look for and what to ask for
  8. Offshoring, Mobile, Apps, SEO and other hot buzzwords, what to care about, and what to watch for
  9. Checklists, checklists, checklists!
Most of the content will appear on the blog first – please stay tuned.  Any commentary will be much appreciated

20
Nov 12


Written By Steve French

 




Copyright 2011 Digital Tool Factory. All Rights Reserved. Powered by raw technical talent. And in this case, WordPress.