One of the things we are quick to complain about in browsers is caching. It can be a problem if you are looking at a page that expects a new banner, javascript or CSS file, but it is using a cached one instead. However, it is far better to have a few styles or images out of date than the alternative: no functional Internet or servers ...
Caching is so important from every aspect of running a website that without it, the Internet and/or our servers would surely grind to a halt. Caching occurs at many levels and the more levels you have the better performance you will likely have. If a few caches remain sticky along the way this is normally ok. People say they want "Real Time" but rarely do they care. Sometimes a minute or twenty minutes old is fine and frequently hours and days is also fine. The more use you make of this knowledge the better chance you have of helping out with various well placed caching systems.
Some common forms of caching are:
Other less common forms that make a huge difference to user experiences are application level caches both in the Content Management System (such as Drupal) or Web Application Framework and front-end database caching. In Drupal, for example, you can cache CSS files, Javascript files, full pages, blocks, and generated images. Front-end database caching can make a big difference to the amount of requests you can handle by offloading the primary database with common and infrequently changing queries.
The best forms of caching are ones that don't require developers to think about it. But sometimes the application requirements are unique and only the person writing the code can get the most out of the system.
However you slice it caching provides a huge benefit to both producers and consumers and without it the internet would have crumbled long ago. Caching truly is our friend.
I recently upgraded my development PC to a Dell Quad Core T3500 and in the process went from Windows XP to Windows 7. Upgrading is always a painful experience because I have installed so much software over the years, and getting it all to work on a new platform can take months. I took the opportunity to upgrade most of the core tools that I use and thought it would be revealing to list them here:
- Windows 7
- Office 2007
- Firefox 3.5
- SlickEdit 14, (with Vi bindings of course!)
- SecureCRT 6.5
- WS_FTP 12 Professional
- ActiveState ActivePerl 5.10
- ActiveState ActivePython 3.1
- Adobe Dreamweaver CS3 9.0
- COAST Webmaster 4.1 (yes ten years old now, and Coast are no longer around)
- ULEAD PhotoImpact 12
- Adobe PhotoShop Elements 8
- MKS Toolkit
Many more random packages to add, but these at least allow me to work. So far I have been very happy with my upgrade. What I find interesting is that every 3 years I buy a new machine and it always seems to cost around three grand. Why is that?
I started writing software in the outstanding music decade of our time: The Seventies. In those days good software performance was instilled in me early on. System calls and disk I/O were to be kept to the absolute minimum. When I started building websites in 1994 performance was still a big deal to me. In those days static HTML was prevalent and when I set out to build a 100% dynamic CGI site it was quite rare. For speed I used compiled "C" and the site (Garden.com) was feature rich and very fast. Over the last fifteen years there have been many hardware and software innovations to make processing dynamic pages faster. In fact, for many sites we don't even have to think about it. However, I'm amazed how slow some large and influential sites often are.
You really need to render pages in less than a second to keep people from noticing. Certain pages (e.g. order checkout and account creation) can take longer without losing people's interest, but for the most part clicking around from page to page should take a second or less. 0.1 to 0.5 seconds are better. You can certainly notice the difference between a second and half a second.
What happens is that developers get so enamored with adding all these "cool features" to a page that they fail to keep an eye on the clock. Or they keep an eye on the clock for the single instance and don't take into account that 100's or 1000's of clicks are competing for the same resource.
I have heard on more than one occasion developers say "Performance doesn't matter anymore." Well, performance does matter. Without it you can't add all the features you need to keep people coming to your site and if you do your site will be so slow that people will leave even quicker.
As we constantly change and fragment the ways we get to deliver content over the web our servers will continue to get pummeled with requests and I don't see a time when performance will ever be irrelevant. What is more likely is that if we don't start really thinking seriously about performance at the lowest levels we will build systems that just topple over with the load.
Performance is more relevant today than ever.
If you have ever tried to move iTunes from one computer to another and at the same time change the drive or location where your store your music files - good luck! It is amazing to think that for such a sophisticated company as Apple there is no easy way to do this. Things get worse if you don't let apple automatically rename files for you. There are a number of systems that are designed to restore from your iPod (e.g. MediaWidget and CopyTrans) however these also rename your files.
I have only used iTunes for a couple of years and before that had many years of using other systems where I chose a different file naming strategy to one provided by iTunes. The last thing I want to do when I recently upgraded my PC was to change all of the names.
After a lot of trial and error and with some less than fruitful web searches I came up with this approach that worked perfectly for me. It is from a PC running XP to a PC running Windows 7. It assumes that you have shared both the music and iTunes folders from your old PC to your new PC and have turned off iTunes on both PC's.
- Copy your music folder from your old PC to your new PC. For me this was from:
\\oldmachine\c\My Music to F:\My Music. - Copy your old itunes directory from your old PC to your new PC. For me this was from:
\\oldmachine\c\My Music\iTunes to C:\Users\andy\Music\iTunes. - Empty the iTunes Library.itl by typing:
copy /Y nul "iTunes Library.itl" - Edit the "iTunes Music Library.xml" file by globally replacing the old location with the new location.
- Turn on iTunes on the new PC. It will complain about the .itl file being corrupted and rebuild from the .xml.
At the end of this process you should be back in business and your playlists, ratings, play counts, etc. should all be restored.
Today I switched from using Eudora, which has been my trusty email client for over twelve years, to the industry leader Microsoft Outlook. Since Qualcomm officially stopped developing Eudora in 2006 it has slowly fallen behind with current email and web standards.
The end of my Eudora years? I never thought I'd see it happen, but I guess all good things must come to an end. I felt some sadness as I imported over 111,000 emails all the way back to 1997 into Outlook. So the first thing I did was change the email notification sound to the familiar Eudora one, as a reminder of simpler times.
I'll miss those Chilli peppers!