Google has extended its support for Google Bot restriction by giving us web developers a new tool to stick in our belt. It was announced today on the Google Blog that you can now control access to your non-HTML files on your website with a simple header. The header X-Robots-Tag will allow you to do everything the normal Robots Meta tag will, but now you can do it for the PDF, Word, Image, and any other document you can think of that is served via HTTP. They also announced on the same post a new type of exclusion cause that lets you set when the document will be unavailable, see below for more information on this new feature as well as currently supported ones for use with X-Robots-Tag:
INDEX|NOINDEX - Tells whether the page may be indexed or not
FOLLOW|NOFOLLOW - Tells whether crawlers may follow links provided on the page or not
NOODP - tells search engines not to use page titles and descriptions from the ODP on their SERPs.
NOYDIR - tells Yahoo! search not to use page titles and descriptions from the Yahoo! directory on the SERPs.
NOARCHIVE - Google specific, used to prevent archiving (cached page copy)
NOSNIPPET - Prevents Google from displaying text snippets for your page on the SERPs
UNAVAILABLE_AFTER: RFC 850 formatted timestamp - Removes an URL from Google’s search index a day after the given date/time
So how can X-Robots-Tags help you better control the content that is indexed by Google? Well you can now tell the Google Bot that you do not want specific non-HTML documents like PDF, Word, and Image documents that you don’t want them cached on the Google Server or that a paper you have released on your website in PDF format should only be good until a specific date. So now you just need to force you server to include an addition X-Robots-Tag in the header which can be done with any of the modern languages and server, the header would look something like this:
You can do this with anything that can be served over HTTP now, so this is a huge boost for any of us control freaks that like to have our content easily organized and controlled on what is searchable on Google.
Well it is official Firefox just released version 2.0.0.6 which makes the old version 2.0.0.5 just 13 days old and not needed anymore. The following issues were fixed:
MFSA 2007-27 Unescaped URIs passed to external programs
MFSA 2007-26 Privilege escalation through chrome-loaded about:blank windows
This brings up the real question which is more annoying Windows Update (the passive update process) or Firefox update (the active update process). Honestly I prefer to stay ignorant about browser updates, because honestly I don’t really care about unescaped uris. Not because I don’t think they are a threat, but because I know the signs of a potential site that could cause harm and just avoid them.
Please note: These fixes break all current methods of bypassing driver singing requirements except the good old F8 during boot (that you have to do every single time you start vista)
If you are using Rivatuner, atitool and or Peerguardian on 64bit vista, you will have to use F8 every single time to disable driver signing requirements to use those two programs. x86 version is unaffected.
These updates should go official on the next patch Tuesday (in one weeks time). Please read more for the download links and information on these updates.
938979 Vista Performance and Reliability Pack
This update resolves a number of individual issues which may be affecting some computers running Windows Vista. These issues have been reported by customers using the Error Reporting service, product support, or other means. Installing this update will improve the performance and responsiveness for some scenarios and improves reliability of Windows Vista in a variety of scenarios. Some examples of the improvements contained in this update are:
Improves performance in resuming back to the desktop from the Photo and Windows Energy screensaver.
Resolves an issue where some secured web pages using advanced security technologies may not get displayed in Internet Explorer on Windows Vista.
Resolves an issue where a shared printer may not get installed if the printer is connected to a Windows XP or Windows Server 2003 system and User Access Control is disabled on the Vista client.
Resolves an issue where creating AVI files on Vista may get corrupted.
Improves the performance in calculating the ‘estimated time remaining’ when copying/moving large files.
Improves performance in bringing up Login Screen after resuming from Hibernate.
Resolves an issue where synchronization of offline files to a server can get corrupted.
Resolves a compatibility issue with RAW images created by Canon EOS 1D/1DS Digital SLR Camera which can lead to data loss. This only affects RAW images created by these two specific camera models.
Resolves an issue where a computer can lose its default Gateway address when resuming from sleep mode.
Improves the performance when copying or moving entire directories containing large amounts of data or files.
Improves the performance of Vista’s Memory Manager in specific customer scenarios and prevents some issues which may lead to memory corruption.
938194 Vista Compatibility and Reliability Pack
This update resolves a number of individual issues which may be affecting some computers running Windows Vista. These issues have been reported by customers using the Error Reporting service, product support, or other means. Installing this update will improve the reliability and hardware compatibility of Windows Vista in a variety of scenarios. Some examples of the improvements contained in this update are:
Improved reliability and compatibility of Vista when used with newer graphics cards in several specific scenarios and configurations.
Improved reliability when working with external displays on a laptop.
Increased compatibility with many video drivers.
Improved visual appearance of games with high intensity graphics.
Improved quality of playback for HD-DVD and Blue-Ray disks on large monitors.
Improved reliability for Internet Explorer when some third party toolbars are installed on Vista.
Improved Vista reliability in networking configuration scenarios.
Improved the reliability of Windows Calendar in Vista.
Improved reliability of systems that were upgraded from XP to Vista.
Increased compatibility with many printer drivers.
Increased reliability and performance of Vista when entering sleep and resuming from sleep.
I would like to let everybody know that today is System Administrator Appreciation Day, so go out and get him a beer or her a bundle of flowers for putting up with the crap of us Developers of the past year.
I found this great article about Con Kolivas on Slashdot today:
Linux is burdened with ‘enterprise crap’ that makes it run poorly on desktop PCs, says kernel developer Con Kolivas. Kolivas recently walked away from years of work on the kernel in despair. APCmag.com has a lengthy interview with Kolivas, who explains what he sees is wrong with Linux from a performance perspective and how Microsoft has succeeded in crushing innovation in personal computers.
This article is personally the first time I have heard of Con Kolivas, but in the article he makes many great points about performance and usability that every software developer should be concerned with. He also talks about the disconnect that the Linux Kernel Developers have with the common user and the weight corporations hold over the changes that go in to the Linux Kernel.
One of the new features of Windows Vista was the Driver integrity Checks. In the x64 version of the product it is turned on by default, and is a great idea to prevent kernel level access to only drivers that have passed the Microsoft Testing for security and performance. However this feature can be rather annoying since Microsoft hasn’t even released signed drivers for all their products. (i.e. Streets & Trips GPS Device) So I have included the following steps in order to disable the driver signing integrity checks, so that you can install unsigned drivers.
Note: You should only do this if you are experiencing driver installs getting blocked and you use this driver on a daily basis. Because there is an F8 boot option that will temporarily disable driver signing for other needs and also this is a very good feature that helps prevent spyware and other nastys from gaining access to your OS.
Log in to Windows with a user name that has administrative access.
Right click on Start > Accessories > Command Prompt
Select Run as administrator
In the command prompt type bcdedit /set nointegritychecks on
Reboot.
To turn driver signing back on do the following:
Follow steps 1-4 from above.
In the command prompt type bcdedit /set nointegritychecks off
Just saw this article over at The Register about the virus turning 25.
Elk Cloner, which spread between Apple II computers via infected floppy disks, has the dubious distinction of the first computer virus1 to spread in the wild. The malware is thought to be the work of Rich Skrenta, a 15-year-old high school student from Pittsburgh, who released it in July 1982.
So when ever a fan boy starts talking about how secure OS X is, you can remind the that it was Apple that had the first unsecured computer in the world.
It’s official MainSoft developers have too much time on their hands. I personally think so, but if you are one of those coders who always wished they could debug .NET code on Linux using your Wii remote you might disagree with me.
One of the things I love to learn about is the history of how things come to be. Specifically my interests have always been in the evolutions of religion and the tech world (yeah I know pretty much polar opposites, but that is what I like to learn about). I came across an interesting article in my MSDN subscription that talked about how language features of C# 3.0 came to be. The features I am talking about are:
Lambda Expressions
Extension Methods
Anonymous Types
Implicitly Typed Local Variables
Object Initializers
Query Expressions
LINQ
All these features were made possible because of they wanted to add a feature that let you query collections much like how you query SQL (LINQ) and the strong convictions of the C# language maintainers to not implement hacked together solutions. Much of the same convictions that I try to promote on this blog, and because of these convictions C# developers got some very nice features out of the language.
If you have not heard of LINQ before, this is the basic C# language construct (notice the similarities to SQL):
var overdrawnQuery = from account in db.Accounts
where account.Balance < 0
select new { account.Name, account.Address };
This article, The Evolution Of LINQ And Its Impact On The Design Of C#, is well worth the read and I recommend it to anybody that wants to learn more about C# 3.0 or is just interested in how good coding practices can have great impact on projects.