Mac 101 and Switch 101

Last week I took delivery of my new Apple Macintosh. I’m still having some teething problems (more on that when I get a resolution to my networking issues) but right now the Mac is at home and I’m in a hotel in London, surfing and blogging from my Windows Vista notebook. Anyway, I just came across the Mac 101 and Switch 101 sections of the Apple website which are really cool resources for those who are getting used to a Mac for the first time (either as new computer users or switching from Windows respectively). Useful stuff.

I particularly like the Switch 101 tag line – “Lose Ctrl. Gain Command.”

Enabling Outlook Mobile Access for Exchange Server 2003

A few years ago I attended an Exchange Server 2003 overview presented by Microsoft UK and Conchango (where I subsequently worked for a while) and got to play with Outlook Mobile Access (OMA) using an emulated mobile phone connection. I was pretty impressed (these were the days before smartphones became a reality) but haven’t used the functionality since. Until last night that was, when (inspired by a mobility presentation which Jason Langridge gave at the Microsoft UK Security Summit a couple of days back) I was tweaking a few settings on my Exchange server and decided to enable OMA.

For those who are not familiar with OMA, it supports mobile microbrowser access to Exchange Server 2003 for browsers that use HTML, extensible HTML (XHTML), wireless application protocol (WAP) 2.x or compressed HTML (CHTML) with access to Inbox, Calendar, Contacts, and Tasks as well as a searchable global address list and searchable Inbox folders .

OMA Main Menu

My handset is a fairly simple Nokia 6021 (but it does everything that I need it to) and is not on the list of supported handsets but there’s an option in Exchange System Manager to enable unsupported devices. After enabling OMA in the mobile services global settings (and optionally enabling unsupported devices) browsing to the server and reading my messages should be as simple as initiating a GPRS connection from my phone to my Exchange server (but with /oma instead of /exchange) and logging on (SMTP forwarding is also available but it requires the use of a WAP gateway and additional settings to define the mobile carrier).

Unfortunately my browse request was greeted with the following error message:

A System error has occurred while processing your request. Please try again. If the problem persists, contact your administrator.

Additionally, Exchange Server logged the following error in the application event log:

Event Type: Error
Event Source: MSExchangeOMA
Event Category: (1000)
Event ID: 1503
Date: 06/07/2006
Time: 23:36:57
User: N/A
Computer:
servername
Description:
An unknown error occurred while processing the current request:
Message: The remote server returned an error: (403) Forbidden.
Source: Microsoft.Exchange.OMA.ExchangeDataProvider
Stack trace:
at Microsoft.Exchange.OMA.ExchangeDataProvider.OmaWebRequest.GetRequestStream()
at Microsoft.Exchange.OMA.ExchangeDataProvider.ExchangeServices.GetSpecialFolders()
at Microsoft.Exchange.OMA.ExchangeDataProvider.ExchangeServices..ctor(UserInfo user)

Message: Exception has been thrown by the target of an invocation.
Source: mscorlib
Stack trace:
at System.Reflection.RuntimeConstructorInfo.InternalInvoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean isBinderDefault)
at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
at Microsoft.Exchange.OMA.UserInterface.Global.Session_Start(Object sender, EventArgs e)

Message: Exception of type Microsoft.Exchange.OMA.DataProviderInterface.ProviderException was thrown.
EventMessage:
UserMessage: A System error has occurred while processing your request. Please try again. If the problem persists, contact your administrator.
Source: Microsoft.Exchange.OMA.UserInterface
Stack trace:
at Microsoft.Exchange.OMA.UserInterface.Global.Session_Start(Object sender, EventArgs e)
at System.Web.SessionState.SessionStateModule.RaiseOnStart(EventArgs e)
at System.Web.SessionState.SessionStateModule.CompleteAcquireState()
at System.Web.SessionState.SessionStateModule.BeginAcquireState(Object source, EventArgs e, AsyncCallback cb, Object extraData)
at System.Web.AsyncEventExecutionStep.System.Web.HttpApplication+IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

Microsoft knowledge base article 898131 suggested that the on-screen error may have been related to multiple server identities and incorrect host headers for the OMA website; however I didn’t find that to be the case (that is to say that the resolution I found works regardless of whether or not I change the host headers to include the NetBIOS name of my server, which is accessed externally using a totally different name). Microsoft knowledge base article 817379 was much more useful as it seems the issue is related to the fact that my server is only accessible using an SSL connection, forms-based authentication is enabled and I don’t have a dedicated front-end server. Following Microsoft’s advice to create a secondary virtual directory for Exchange that does not require SSL (/exchange-oma), and then adding a registry value to point to the new virtual directory resolved the issue for me.

I still access the server using HTTPS to https://exchangeservername/oma (external HTTP connections cannot reach my Exchange server) but this fix resolves the internal operations between OMA, the OWA templates and DAV on the mailbox server.

To read more about configuring OMA, an OMA 2003 tutorial is available at MSExchange.org. It’s also possible to test OMA using the Nokia mobile browser and WAP gateway simulators (which is what I used for the screenshot shown above).

Accessing a public Internet connection from a virtual machine without getting charged twice

Last night, I stayed away on business in a hotel with broadband Internet access in my room (1.5Mbps according to a bandwidth speed test). Having paid almost as much for a 24 hour connection as I pay for a month at home, I decided to remain in my hotel room this morning and take advantage of a fast connection, rather than competing for a meagre amount of bandwidth in the office.

That sounds fair enough, but as I’m now working (rather than just surfing the ‘net and writing new blog posts) I also need to access corporate applications and data. My notebook PC is running Windows Vista but my corporate desktop runs in a Windows XP virtual machine using the VMware Player, so whereas last night I’d been using the host machine to access the Internet, this morning I need to use the virtual machine too.

The host PC is still working with the hotel ISP‘s systems but when I originally connected with the virtual machine (which is normally configured for bridged networking to logically separate the guest and host machines so it has it’s own IP address) I was presented with a welcome page which invited me to pay again for access.

Quickly changing the VMware Player’s Ethernet connection from a bridged connection to a NAT connection, disconnecting and reconnecting the Ethernet connection and then running ipconfig -release and ipconfig -renew in the virtual machine gave the Windows XP guest a new NATted IP address and me the ability to access the Internet from either the virtual guest or the physical host machine. Unfortunately I still can’t create a VPN connection to the company network (probably something to do with the NAT) but I can live with that for a few hours.

Apparently, my digital life starts here

A few years ago, I bought one of the original Apple iMac G3s. I tried to love it, but I found the operating system too difficult to live with and eventually I sold it to my mate Stuart (after it had sat idle for a year or so).

iMac G3

Nowadays, Macs are based on standard PC hardware and BSD Unix, so I decided to get myself a Mac Mini for all my digital media work (the Intel Core Duo 1.66GHz model), although I do intend to dual boot OS X and Windows XP (mostly out of idle curiosity)… and one day I might manage to install Linux on it too.

Apple’s UK distribution centre is only about 25 miles away from my house and although there is no next day shipping option, the guys at the Apple Store told me that they would assign my order a priority for fast dispatch (hoping that it would arrive next day). Priority! Pah! No such thing; however was dispatched within 24 hours and the man from UPS delivered it yesterday afternoon (still a day before Apple’s official estimate, but I had really wanted to get my hands on it before the weekend). Unfortunately, work got in the way of me playing with my new toy and I couldn’t do anything with it until yesterday evening.

Once I’d opened the outer packaging, I just had to take a picture of it all still boxed up (when was the last time you saw any other PC arrive in such attractive packaging?) – according to the printing on the back of the box “your digital life starts here”.

My new Mac.  Still in the box.  Look at all that gorgeous packaging

Once unboxed, setting everything up was really simple – after just a few questions (language, country/region, keyboard layout and a few other options) I was up and running; however the OS X software update utility told me that there were 14 updates to apply.

It all looked simple enough, but the Mac kept losing its Ethernet connection each time I tried to download and install all of the available updates (not even caching them, so it had to start the entire list of downloads again each time). After various restarts (to kick the Ethernet connection back into life) and resorting to installing updates a few at a time I’ve nearly got it working. I’m trying hard to be objective about OS X (I will try and live with it for a while before I install Windows XP on the Mac) but this initial experience has soured things slightly.

Still, it is a very attractive PC, and once I’ve transferred the data from my old PC I will have liberated quite a lot of desk space. Just enough to fill with a nice widescreen LCD monitor I think…

Photoshop 7 crashes on startup

Back at the end of 2003 I experienced a problem with Adobe Photoshop 7 crashing on a Windows XP machine. Since then, everything has been fine, but tonight the problem re-emerged so I dug out my old notes (which predate this blog) to try and find the answer.

Basically, when starting Photoshop, the splash screen displays as components are loaded and then nothing else appears (not even an error message).

Luckily, when this happened to me a few years back, I found a forum post with the answer to the problem – hold down the Ctrl, Alt and Shift keys whilst launching Photoshop (this will allow the settings file to be deleted and recreated). It’s worked twice for me now, hopefully blogging about it here will help someone else out too.

Configuring an HP MSA1000 using a serial cable

Earlier today, I needed to configure an HP StorageWorks Modular Storage Array (MSA) 1000 which I’ll be using for SAN storage over the next few weeks. Nothing too difficult about that, except that I wanted to access the SAN via the command line interface (CLI) and that meant using a serial cable to connect to the MSA controller. Each controller has what looks like an RJ45 Ethernet connection on the front, but standard Ethernet cables don’t fit. Fortunately I found the console cable that had been delivered with the SAN and found that it uses a slightly unusual variation of an RJ45 connection, which further research indicates is called an RJ45Z. The only noticeable difference (apart from how the connector is wired internally), is an extra notch on one side, as shown in the picture below:

RJ45Z

Incidentally, once the connection is made from a standard RS232 serial port to the MSA (most modern notebook PCs don’t have a serial port – I had to use an IBM USB-serial/parallel adapter), accessing the CLI simply involves starting Windows HyperTerminal with the following connection settings:

  • Connect using: comportidentifier (e.g. COM1)
  • Bits per second: 19200
  • Data bits: 8
  • Parity: None
  • Stop bits: 1
  • Flow control: None

Once connected, it may be necessary to press the Enter key until the CLI> prompt is displayed, after which commands can be issued to configure the MSA.

Further details can be found in the HP StorageWorks Modular Smart Array 1000/1500cs Command Line Interface manual (just in case, like me, you found this information using Google before you got around to reading the manual that came on a CD with the MSA!).