The correct solution, as provided by Michael, is illustrated in this example C# code:
// Get a reference to the appropriate Content Placeholder
ContentPlaceHolder contentPlaceHolder = (ContentPlaceHolder)
// Clear out anything that SharePoint might have put in it already
// Put your content in
LiteralControl literalControl = new LiteralControl();
literalControl.Text = "Your text goes here";
Happily this even works when you “cheat” by hosting an ASP.NET user control within a SmartPart, as opposed to creating a bona fide Web Part.
Google offer a standalone installer for the Windows build of Google Chrome, as opposed to the standard download which is actually just a small stub application that connects to Google’s servers to download and install the actual browser.
The offline installer is handy if you have a number of machines on which to install or update Chrome, but unfortunately Google haven’t updated it recently, so you end up with version 18.104.22.168 rather than the latest all-singing, all-dancing, extension-supporting version 22.214.171.124.
You can of course update to 126.96.36.199 from the About screen, but this defeats the purpose of using the standalone installer in the first place, and you may be unlucky enough to be on a corporate network which breaks the in-browser upgrade functionality.
By using Fiddler2 to monitor the activity of the stub installer, I was able to establish that it connects to the following google.com URL to download the latest build:
Ninite is a free (for personal use) service which allows you to download and install several popular pieces of Windows software in bulk from a single installer – great when building a new PC or reinstalling an OS on an existing machine.
When you visit the site, you are presented with a list of well-known free and trial applications. Just select the ones you’re interested in, click Download and you’re presented with a small (~200K) stub installer which, when launched, downloads and installs each chosen application without user intervention.
I’ve just tried it on a new machine I’m setting up, and although it takes a while to download and install everything (I had selected quite a few apps), this part of the process is completely automated so you’re free to do something else while you wait.
Today I’ve been playing with Return of SmartPart 1.3, a shim which allows you to create SharePoint 2007 web parts using Web User Controls (ASCX files) created by Visual Studio/Visual Web Developer.
This is probably the least painful way for C#/VB.NET developers to delve into web part building without having to worry too much about the intricacies of the SharePoint platform.
Complete with setup wizard, comprehensive user guide and sample user controls, it’s a snap to get running, although you will need access to your SharePoint server both to install the SmartPart and any custom user controls. It also optionally supports AJAX controls, after installing Microsoft’s ASP.NET AJAX extensions.
There’s no need to use strong naming or even compile your controls – just drop the .ascx (and .ascx.cs/.vb, if necessary) files into your usercontrols directory and you’re good to go.
I noticed today that the Google logo shown at the top of all search results is actually a composite image, sliced up through clever use of CSS positioning:
At first, I thought of this as nothing more than a neat trick, but then I began to think about why Google might have decided to use this technique to their advantage.
Whenever a client browser requests a page, it will also make a request for each of the images (and other media) embedded into the page. Once an image has been displayed once, it is usually cached client-side to conserve bandwidth and improve performance for subsequent loads. For example, the RSS logo at the top of my blog will be downloaded from my server on your first visit, but as you move through the site, future references to the file will be fulfilled from your browser’s cache.
Google isn’t particularly image-heavy, but a typical results page could contain five or more ‘sprites’ or graphical elements. By squeezing them into a single file, user’s Web browsers need only make two requests (one for the page itself and one for the composite image) instead of six or more.
This might sound trivial, but considering that Google serve billions of result pages to millions of different visitors every day, the cumulative saving in bandwidth and server resources is likely to add up to quite a figure.
If you operate a moderately high-traffic site, it might be worth considering using similar tactics. The only other site that I’ve noticed that has used CSS image slicing in this way is the now-defunct Cdiscount UK site, for its pricing images.
Buried in my AA (Automobile Association, that is…) renewal documentation, I spotted that they’ve provided land line telephone numbers as an alternative to the usual non-geographical 0800/0870 numbers, which cost extra from most mobile phones:
For breakdowns, the number is 0121 275 3746.
For membership enquiries, the number is 0161 332 1789.
Sites such as Say No To 0870 regularly publish user-submitted geographic numbers for many companies, but kudos to the AA for providing official numbers without having to jump through such hoops. Less kudos to them for taking 2 hours to tow my broken-down car, instead of the promised 45 minutes, but that’s another story.