Google web accelerator – a mixed blessing

This content is 18 years old. I don't routinely update old blog posts as they are only intended to represent a view at a particular point in time. Please be warned that the information here may be out of date.

A few days back, I noticed that my PC’s IP address was reported by a website as being 72.14.192.45. That address isn’t in my IP stack, and isn’t my router’s ISP-provided IP address either.

After checking the address out at DNSstuff, I found that address is registered to Google and then I remembered that I’d installed the Google web accelerator. As far as I can see, this is acting as a big proxy server, caching and prefetching my Internet search requests. It claims so far to have speeded up my downloads by 25% but there are some negative points too:

It is possible to stop the web accelerator from caching certain sites, as well as switching it on/off without re-installing – details of this, along with how it all works can be found at the Google web accelerator support page, but to be honest, that’s a pain in the backside – I already have to switch my proxy settings when I jump from my corporate VPN to my home network and don’t want to have to think about another set of proxies. On that basis, I think the web accelerator will be off my PC soon.

As a web site administrator, I’ll also be giving serious thought to implementing a Google web accelerator blocking method (and the update). Rather than blocking IP ranges, I’m more likely to reject x-moz: prefetch requests and, instead of sending back a custom HTTP error page, I’ll probably refer to no web accelerator (unnecessary proxying considered harmful).

To Google’s credit, they have published web accelerator information for webmasters. What’s not clear to me though, is whether or not blocking/ignoring prefetch requests will also prevent Google from crawling my site. I’d rather lose a few bytes to a prefetch than see my page ranking start to slide.

Whilst writing this post, I found that some versions of Firefox also prefetch by default (I’m using Firefox 1.5 and that certainly does). Most websites don’t seem to care about this as they are looking for Google’s web accelerator IP addresses, but any form of prefetch will load unnecessary content over slow links, or hit web servers with unnecessary requests. For details, read more about prefetching or to turn this off in Firefox’s about:config, set network.prefetch.next to false.

Live Communications Server 2005 overview

This content is 18 years old. I don't routinely update old blog posts as they are only intended to represent a view at a particular point in time. Please be warned that the information here may be out of date.

Next week, I’m planning to spend three days on a Microsoft Live Communications Server (LCS) 2005 course, which has prompted me to look back at some earlier notes from last year’s Microsoft Technical Roadshow. At that event, Paul Brombley, a Messaging Technology Specialist with Microsoft UK, gave an overview of the LCS product – this post repeats the key messages from that presentation.

Enterprises face a number of communication challenges. One of these is productivity and cost, with disconnected data, processes, platforms and people. Communications are full of inefficiencies – playing e-mail/voice-mail “tag”, considering geographic/time zone separations, understanding availability before attempting to contact – and whilst technology can help, it is sometimes difficult to automate real-time processes and notifications. Even in these days of widespread Internet access, it can still be difficult to connect to other organisations due to the variety of standards in use, often requiring organisations to resort to specialist (and sometimes expensive) third party products. Additionally, although communications costs are dropping, long distance phone calls are still expensive, virtual meetings can’t always substitute face-to-face interaction, and e-mail systems are still used by many as huge filing systems.

Many people (myself included) have resorted to using public instant messaging (IM) services such as MSN Messenger for instant communications with presense awareness; but public IM networks are not secure (messages are transmitted in clear text over the Internet), client management is not easy, there are regulatory and compliance issues around auditing – besides which using a Hotmail address for business communications just does not look professional.

Even so, according to Microsoft, 38% of information workers use at least one IM client and whilst in 2004, 20% of enterprise users worldwide were using IM, by 2008 this is expected to grow to 80%. IM is moving from the consumer space to into business – and it’s the presence information that makes a difference.

According to Microsoft’s marketing information, their products deliver a full suite of communications capabilities:

Microsoft’s real-time collaboration vision is for “intuitive, integrated software and services that provide pervasive real-time collaboration capabilities enabling people to work together more effectively”.

The products which support this vision are:

  • Live Communications Server – Microsoft’s communications platform engine for presence information, IM and real-time collaboration (audio, video and data).
  • Live Meeting – a web service offering conferencing and call screening over HTTPS.
  • Office Communicator – Microsoft’s latest IM and telephony client, passing calls to wherever a user is physically located (desk, mobile, home, etc.) and identifying callers from the user’s address book.

Microsoft views integrated communications as a series of concentric rings. At the centre is identity, authenticated within a real organisation. The next layer is around presense, understanding context (e.g. a user is online, but their calendar says they are in a meeting, so do not disturb them unless you really need to – that’s not the same as “busy”). Next comes the communication mechanisms – data, voice, e-mail, IM and video. Finally, information agents, workflow and workspaces provide value to end-users, IT operations management and developers alike – an intuitive, contextual user experience; rich, presence-based multi-modal collaboration; universal availability across devices and networks; integrated seamlessly into the organisational infrastructure; built on standards, rich APIs, and development tools.

Enough of the marketing… basically LCS is about connecting people in a world of presence awareness and remote working, whilst keeping data safe and managed, reducing cost, and integrating with other technologies through recognised standards.

LCS connectivity

LCS can be extended outside an organisation using an LCS access proxy – a secure access point (placed in the DMZ) for external clients to interface with the internal LCS server(s). Using this model, the session initiation protocol (SIP) is run over TLS on port 5061 or 443 and no VPN is required as authentication is at the access proxy. It should be noted that although text travels between servers, audio and video are transmitted point-to-point, so may be affected by any intermediate firewalls.

This model can be extended to offer federation between organisations, or to a public IM network with a number of interconnected LCS access proxies (or other SIP proxies). Clearing houses can be used to allow an enterprise to use a single connection to interface with multiple partners, with the advantage of offering a single point of management.

LCS 2005 standard edition uses a single Active Directory-connected server, supporting up to 15,000 users with a local MSDE database. Logging/archiving can be provided using a separate SQL Server and remote access/federation is achieved via a separate LCS access proxy, placed in the organisation’s DMZ.

LCS 2005 enterprise edition provides a two-tiered architecture for scaling out, using SQL Server as the back-end database and supporting up to 20,000 users per LCS server (load balanced so up to 100,000 can be supported in a single pool). As for standard edition, remote users are supported via an LCS access proxy as is federation. High availability can be facilitated by clustering the SQL Servers.

LCS in the Enterprise

Administered via an MMC console, LCS 2005 offers significant feature enhancements over the earlier LCS 2003 product. The licensing model is for a server, plus client access licenses (CALs), with separate CALs for LCS, telephone connectivity, and public IM connectivity (licensed per user, per month). Microsoft claims that the subscription model for public IM connectivity allows for compensation of the public IM networks for lost advertising revenue; however not every LCS user needs to be given public access – this can be controlled via Active Directory.

Opening multiple browser home pages in Firefox

This content is 18 years old. I don't routinely update old blog posts as they are only intended to represent a view at a particular point in time. Please be warned that the information here may be out of date.

I’ve not been that bothered with Internet Explorer (IE) 7 up to now – I use Firefox 1.5 on my Windows XP machines and Mozilla 1.7 on Solaris, so I already have the most significant new IE 7 feature (tabbed browsing); however, during his Windows Vista overview and roadmap session at last week’s IT Forum ’05 highlights (part 2) event, Thomas Lee mentioned an IE7 feature that does interest me – multiple home pages. This works by opening a number of home pages at startup, each in a separate tab (e.g. corporate intranet, Google, BBC News, etc.).

It’s not as obvious as entering each on on a separate line in IE 7, but Firefox also supports this feature – in Options, General, Home Page, Location(s), enter a list of home pages separated using the pipe (|) symbol.

This time it’s Apple who’s heading to court

This content is 18 years old. I don't routinely update old blog posts as they are only intended to represent a view at a particular point in time. Please be warned that the information here may be out of date.

Generally, news about yet another anti-trust suit bores me. Intended to protect consumer interests against monopolistic suppliers, it seems to me that anti-trust court cases rarely have that effect and are more often than not just a chance to beat up an established supplier when another vendor’s product fails to gain the market share that they think it should.

In a world of marketing and hype, the best products don’t always become popular. Betamax was better than VHS but VHS is still in many of our homes today. MiniDisc was better than DCC, but ultimately they both lost out to recordable CD (and then DVD).

Just over a year ago, I set out my views on why I think the EU’s sanctions against Microsoft were wrong. Sure, Microsoft is playing along and stretching things out as long as they can, but the EU seems to be getting tough and the US DoJ is starting to wake up again too.

The trouble is that, by the time a technology case gets to court, the damage is already done. In the same post about why Microsoft shouldn’t have to unbundle Windows Media Player, I pointed out that Apple were acting monopolistically with the way they force iPod owners to use iTunes. Now, after years of acting in this manner, Apple are finally being sued. In last Friday’s Windows IT Pro magazine network WinInfo Daily Update, Paul Thurrott reports that:

“This week, a federal judge in California cleared the way for the first-ever antitrust suit against Apple because of the iPod… noting that the complaint alleges Apple has an 80 percent share of the market for legal digital music files and more than 90 percent of the market for portable hard-drive digital music players. Like Microsoft, Apple is being sued under the Sherman Antitrust Act.”

I have to agree with Paul’s summary of the situation:

“If Apple opens up the iPod to Microsoft’s Windows Media Audio (WMA) format – including songs purchased from competing online music services – all will be well.”

That would certainly make me happy.

More Blogger hacks

This content is 18 years old. I don't routinely update old blog posts as they are only intended to represent a view at a particular point in time. Please be warned that the information here may be out of date.

Blogger logoLast month I wrote about some of the Blogger hacks that I’ve implemented to get things working on this site how I’d like them to. Today I found another one which rocks…

I often update posts by adding comments to them; however, unlike the posts themselves, I’ve not been able to edit the comments once posted (e.g. if I spot a mistake afterwards). That was, until today, when I came across the Blogger Templates blog, which, in addition to some pretty cool templates, also includes these useful hacks:

It also links to “a frequently-updated compendium of… Blogger hacks” at John’s FreshBlog.

[Update: This site moved to WordPress in March 2007]

Create customised Windows installations with nLite

This content is 18 years old. I don't routinely update old blog posts as they are only intended to represent a view at a particular point in time. Please be warned that the information here may be out of date.

I heard about nLite whilst I was listening the episode 41 of the This Week in Tech podcast. I haven’t used it yet, but it sounds like a great freeware tool for customising a Windows installations right up to creating a bootable ISO image, including slipstreaming service packs, hotfixes and drivers – it sure beats Microsoft’s Setup Manager.

nLite has a dependency on the Microsoft .NET Framework 2.0 but also has a selection of popular packages ready for integration into the Windows source as add-ons (Firefox 1.5, Adobe Reader, AVG AntiVirus, etc.). If I hadn’t already put a lot of effort into an unattended XP build and didn’t already use WSUS for windows updates I’d be seriously tempted to give it a go.

How to get a free copy of TechNet magazine (if you live in the UK)

This content is 18 years old. I don't routinely update old blog posts as they are only intended to represent a view at a particular point in time. Please be warned that the information here may be out of date.

I often think that it would be good to have a print copy of Microsoft’s TechNet magazine (it’s just not the same reading articles online). Until recently, free subscriptions were only available in the United States but now readers of Microsoft UK’s FYI magazine (which is available as a free subscription) can get TechNet magazine too.

Although a bit light on technical detail (and printed in a tiny serif font) FYI bills itself as “the insider’s guide to Microsoft technology” and is good for an overview from both a business and technical standpoint. TechNet magazine is more technical, billing itself as “the Microsoft journal for IT professionals”.

Microsoft’s next generation command shell

This content is 18 years old. I don't routinely update old blog posts as they are only intended to represent a view at a particular point in time. Please be warned that the information here may be out of date.

Back in June 2004, I got in a panic because I heard that VBScript was about to be phased out. Don Jones commented that VBScript will still be there in Windows, it just won’t be developed any further, then later I heard about the new Microsoft scripting host (MSH) shell (codenamed Monad).

At yesterday’s IT Forum ’05 highlights (part 2) event, Thomas Lee gave a preview of Monad. Although I am enrolled on the Microsoft command shell beta program, pressures of work and family life have left very little time to do anything with it up to now, but having seen Thomas’ demo, I’ve installed MSH beta 3 on my day-to-day notebook computer and will try to use it instead of cmd.exe, regedit.exe and some of my other everyday tools.

Those of us who have worked with Windows since… well since MS-DOS… will remember the command prompt, as will those who use other operating systems. Graphical user interfaces (GUIs) are all very well (and a well designed GUI can be remarkably intuitive), but a command line interface (CLI) is my preference. Despite a whole load of new and powerful commands in recent Windows releases (like netsh.exe), Windows still lags behind Unix in many ways when it comes to command line operations and MSH is an attempt to catch up with, and then exceed, the tools provided by other operating systems.

MSH is a next-generation shell that is intended to:

  • Be as interactive and scriptable as BASH or KSH.
  • Be as programmatic as Perl or Ruby.
  • Be as production-oriented as AS/400 CL or VMS DCL.
  • Allow access to data stores as easily as accessing file systems.

It sounds like a tall order but amazingly, Microsoft seem to have cracked it. MSH is also pretty easy to use and, it’s secure by default, avoiding many of the issues associated with VBScript. So secure, in fact, that before running MSH you may wish to execute the following registry change:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSH\1\ShellIds\Microsoft.Management.Automation.msh]
"Path"="C:\\Program Files\\Microsoft Command Shell\\v1.0\\msh.exe"
"ExecutionPolicy"="Unrestricted"

(There’s more on MSH security below).

MSH is instantly recognisable. If I was to type cmd, I would be greeted with something similar to the following:

Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\>

If I type msh instead, everything is very familiar:

Microsoft Command Shell
Copyright (C) 2005 Microsoft Corporation. All rights reserved.

MSH C:\>

Type dir and guess what happens? For that matter, type ls! If you want to see the contents of a file then either type filename or cat filename will work too. get-history returns a list of commands, to re-run, save, or edit.

Whereas Unix (and Unix-like) systems tend to store configuration in text files, Windows configurations are incredibly complex with multiple data stores (the registry, text files, DNS, Active Directory, etc.). These data stores normally fall into one of two categories: hierarchical, highly recursive data structures (file system directories, registry keys, Active Directory organizational units, etc.) or fairly flat structures (e.g. DNS zones and records). MSH makes them all easy to navigate using a system of data providers.

For example, I can type cd hklm: followed by dir to see all the HKEY_LOCAL_MACHINE keys, navigating the registry as though it were a file system. This simplicity is both elegant and incredibly powerful. There are no AD or DNS providers yet, but the next version of Exchange (codenamed Exchange 12) will include MSH support, treating Exchange databases as just another data store (get-mailbox, etc.). Exchange 12 support is not implemented as a data provider, but as a commandlet (cmdlet), because its data structure is not really hierarchical (at least down to the mailbox level) – the full list of Exchange commands can be found using get-excommand.

For example, if I want to see the details of my system, I can use get-wmiobject command. That’s a bit long to type, so I can actually use get-w and then complete the command with the tab key (as can in cmd.exe these days). get-wmiobject win32_computersystem returns the details of my system as an object with attributes, that I can assign to a variable (e.g. $mysystem=get-wmiobject win32_computersystem). After that, $mysystem.name returns the name of my computer, $mysystem.manufacturer returns Fujitsu Siemens and $mysystem.model returns Lifebook S7010. That would have been so much harder to obtain in VBscript. Take it to the next level and you can see how the data can be queried and actions taken according to the results (e.g. if ($mysystem.model -eq "Lifebook S7010") {"Do something"}).

MSH has built in help (e.g. get-wmiobject -?) and more is no longer an external command so get-wmiobject -? | more works too.

Some commands will return an array of objects, for example get-wmiobject -list. That’s a pretty long and unmanageable list but if I use $wmilist=get-wmiobject -list, I can use $wmilist.length to see how many objects were returned, $wmilist[objectnumber] to view a single object and of course I can also use $wmilist[objectnumber].attributename to refer to a single item.

On a typical Unix system, pipes are used to pass text between commands. Scripts can be used to split strings and extract data (also known as prayer-based parsing, because if the command output is changed, the scripts break). MSH pipes are .NET objects with metadata. That means that a hierarchy of objects can be passed between commands. So, I can also show my WMI array as a table by piping it through format table (ft), i.e. $wmilist | ft (fl is format list).

Having looked at how simple to use, yet powerful, MSH is, let’s look at some of the product specifications:

  • MSH is intended to support a number of different administrative levels:
  • Operators – command line only.
  • Simple scripters – simple sequences, untyped variables and functions with unnamed parameters.
  • Advanced scripters – typed variables and functions with named parameters.
  • Sophisticated scripters – scoped variables, functions with initialised parameters, function cmdlets and scriptblocks.
  • The four administrative levels are supported with different script types:
    • Text – .NET interpretations of the traditional Unix scripting model.
    • COMWindows script host (WSH)/VBScript-style scripting.
    • .NET – for manipulating any native .NET object.
    • Commands – MSH cmdlets emitting objects.
  • These script types are supported with a variety of data types, including .NET, XML, WMI/ADSI and ADO.
  • MSH is intended to be tremendously customisable and it will eventually allow dispense with the style separation between GUI, CLI and systems programming skills so that even an infrastructure bod like me will be able to issue a GUI command (or use a Win32 program) and see what the MSH equivalent command is, so that I can build my own scripts and run a task repeatedly! Unfortunately this GUI-CLI functionality has been dropped from the first release, but hopefully we’ll see it in a service pack later.

    From a security perspective, MSH is extremely secure, with four operational modes:

    • Restricted mode allows interactive operations only, with no script execution.
    • AllSigned mode requires that scripts must be signed by a trusted source.
    • RemoteSigned mode requires that scripts from the Internet must be signed by a trusted source.
    • Unrestricted mode will allow any script to run, but will always warn before remote scripts are executed.

    Other security measures include:

    • No file association for .msh files.
    • The current folder (.) is not on the path by default.

    So when can we get MSH? Beta 3 is available for download now and the final release is expected with Exchange 12. Although MSH will not included with Windows Vista, I’m told that it does work on a Vista/Longhorn platform.

    Finally, for one more example of how easy Monad can be to use, try this:

    "Monad Rocks " * 200

    Links
    Thomas Lee’s Monad information centre
    Monad on Channel 9
    Monad product team blog
    MSH on Wikipedia
    microsoft.public.windows.server.scripting newsgroup

    Microsoft’s Open XML document formats

    This content is 18 years old. I don't routinely update old blog posts as they are only intended to represent a view at a particular point in time. Please be warned that the information here may be out of date.

    There has been a lot of media and industry comment of late about Office document formats, including Microsoft’s willingness (or otherwise) to embrace open standards. Whilst there will be some limited PDF support in the next version of Office (Office 12), Microsoft is hoping that it’s submission of the new Office formats to the ECMA will be sufficient to make the new Office file format a global standard.

    In a newsletter sent to Windows Vista and Office 12 beta testers, Microsoft commented that:

    “…Word, PowerPoint, and Excel documents are now zipped files containing separate XML components. This format has just been released to ECMA and can be used royalty free.”

    They continued to extol the virtues of this approach, claiming that:

    “This means that you can build robust server side processes that manipulate and create office documents without ever needing the client [applications] running on the server. The openness of the file format means that ISVs can access the full semantic content of their documents without relying on Microsoft code to extract strings.”

    On the face of it, this sounds good, but my first impression is still “oh no, yet more explaining to customers why their users on previous Office versions can’t read documents that have been sent from Office 12 users”. Oh well, I guess that’s the price of progress, but isn’t .PDF a de facto standard for document interchange these days?

    Changing drive icons in Windows Explorer

    This content is 18 years old. I don't routinely update old blog posts as they are only intended to represent a view at a particular point in time. Please be warned that the information here may be out of date.

    A few weeks back, John Howard blogged about changing the Windows Explorer drive icons for his multimedia cards. I decided to give it a go myself and it is pretty cool, although I still can’t find a memory stick icon that I like, so that’s been left at the default setting.

    Drive icons

    One point to be aware of (that I missed in John’s post) – the DriveIcons and DriveLabel registry items are subkeys (not values) – the actual registry settings that I used are:

    Windows Registry Editor Version 5.00
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\DriveIcons]
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\DriveIcons\E]
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\DriveIcons\E\DefaultIcon]@="%systemroot%\\system32\\shell32.dll,194"
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\DriveIcons\E\DefaultLabel]@="SmartMedia Card"
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\DriveIcons\F]@=""
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\DriveIcons\F\DefaultIcon]@="%systemroot%\\system32\\shell32.dll,189"
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\DriveIcons\F\DefaultLabel]@="CompactFlash Card/MicroDrive"
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\DriveIcons\G]
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\DriveIcons\G\DefaultIcon]@="%systemroot%\\system32\\shell32.dll,193"
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\DriveIcons\G\DefaultLabel]@="Secure Digital Card"
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\DriveIcons\H]
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\DriveIcons\H\DefaultIcon]@=""
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\DriveIcons\H\DefaultLabel]@="Memory Stick"

    Icons don’t have to be stored within a dynamic link library (DLL) – one MSFN forum post indicates that .ICO files can be used too.

    Finally, my USB Flash Drive also has an icon. Because this could have a different drive letter depending on what other devices are connected, I didn’t use the registry approach. Instead, I saved an autorun.inf file in the root folder of the device, with the following contents:

    [autorun]
    label=USB Flash Drive (128MB)
    icon=shell32.dll,12

    Using this method the drive lable and icon change whichever computer I use the device in (provided that shell32.dll is available).