End of Daylight Savings in Washington
Daylight savings ended at 2 am this morning, so when I woke up:
- My alarm clock was 1 hour ahead (because I didn’t set it back an hour).
- My phone was 2 hours behind.
- My computers were correct.
Sigh…
Amazon Kindle for Australians
Before moving to the USA I had the opportunity to see a couple of Amazon Kindles up close. These e-book readers are amazing, they:
- Have a screen that looks just like paper (it’s so easy to read, nothing like a computer screen or phone screen),
- Are about the size of a book and the thickness of a magazine,
- Hold about 1,500 books,
- Only require recharging once a week or so,
- Can download books wirelessly in around 60 seconds.
The kicker has always been that they weren’t available in Australia (which isn’t really an issue for me now) but that’s all changed because Amazon has released an international version that works in 140 countries! Pre-order your Amazon Kindle International Edition now.
From Australia to USA
My blog has been quiet recently because I’ve been preparing for a number of large changes in my life:
- I resigned from TechnologyOne.
- I accepted a position at Microsoft (more on this later).
- I’ve moved from Australia to the USA.
- My partner Vanessa and I got engaged.
Visa
I’ve come to the USA on an E-3 work visa which is only available to Australians, valid for 2 years, renewable, allows multiple entries, and also allows your spouse (who can enter on an E-3D visa) to work. This is a sponsored visa (that is you must already have US-based employment before you can apply). Grant Holliday who also recently made the same move has a great blog post about the E-3 process.
Accommodation
My temporary accommodation is located in Redmond directly across the road from the Microsoft campus (which will make getting to work easy). The weather was great yesterday (cool but sunny) and today’s looking like it will be good as well. I also woke up to see a number of squirrels running around outside (these little guys are so funny to watch). Probably my only complaint about the accommodation is that because it’s on a main road it is a bit noisy.
Groceries
My first priority was to get some food in the fridge as well as some other necessities. Because I wanted to get a fair few items, and don’t drive, I decided to try out Amazon Fresh which is an online supermarket (run by Amazon). While I’m sure it’s more expensive then going to a traditional bricks and mortar supermarket I was impressed with the pricing and delivery is free on all orders over $75. While Australia does have a number of online supermarkets the range offered by Amazon Fresh is superior, the other major difference is the delivery options. Amazon Fresh delivers on Saturdays and Sundays as well as offers a pre-dawn delivery service so your groceries are there when you wake up. One thing I found in Australia is that it’s almost impossible to get anything on a weekend.
Communication
Before I came to the USA I wanted to get two main communication methods sorted: postal mail and telephone.
For postal mail I decided to get an account with Earth Class Mail to provide me with a USA address even before I arrived. While this is around double the cost of a standard PO Box it does offer some pretty impressive advantages. Whenever any mail arrives at my Earth Class Mail address they will scan the front and the back of the envelope and upload it into a secure web-interface. From this web-interface I can then choose what I’d like them to do with each piece of mail:
- Forward it to me.
- Open it, scan the contents, and upload the scan ($).
- Recycle it.
- Shred it ($).
The two big advantages for me are: firstly, because I’ll be moving from my temporary accommodation to permanent accommodation in a couple of months this means I can have a static postal address; and secondly, after seeing the amount of paperwork I threw out when I left Australia the idea of having any mail I want to retain scanned automatically is appealing.
For telephone I set up a Skype account with two online numbers, one in Brisbane (Australia) and one in Washington State (USA). This means that people in the USA or Australia can call me at a very low cost regardless of where I am. I then added an Unlimited World subscription to my Skype account which allows me to make calls to any landline in Australia or the USA (as well as a number of other countries) for free. The downside is that I need to be on Skype to answer incoming calls, or do I?
No I don’t… by using Skype’s call forwarding feature I can forward my Skype number to the number of my choice, so if I’m at my temporary accommodation I can forward my calls there, if I’m at work I can forward my calls there, or I can even forward calls to my cell. If I want to get really fancy I can have incoming calls ring on all three! I wish there was a simple one click method to change your Skype call forwarding configuration or to set up call forwarding based on a schedule but there doesn’t appear to be.
What’s on the agenda today?
Today I’m planning to get a cell phone account (probably with Verizon), a digital camera, and generally explore what’s around. So on that note, I’m signing off.
A problem has been encountered while loading the setup components. Canceling setup.
After installing Visual Studio 2008 and Service Pack 1 from my external HDD I tried modifying the installed features by re-running the original setup. During the initialisation of the setup I received the error “A problem has been encountered while loading the setup components. Canceling setup.” and the setup then terminated.
The workaround was to run the setup from Add/Remove Programs (or Programs and Features in Windows Vista/7) instead of running it from the original installation source. I suspect that this is because the RTM installer doesn’t recognise the service packed components.
Unsubscribing from Newsletters
I’ve been unsubscribing from a number of newsletters recently and I want to make some suggestions to anyone implementing unsubscribe functionality:
- I should not need to enter my email address to unsubscribe. The link to unsubscribe should pass the email address that the email was sent to. This way if I have multiple email addresses there is no confusion over which one the email was sent to.
- Do not make me login to unsubscribe. There’s a good chance that if I’m unsubscribing it’s not something I use often which means I probably don’t remember my login details.
- Don’t send me a confirmation email, just display a confirmation message instead. Unsubscribing means I don’t want to receive any more email, sending a confirmation email is just ironic. If I want proof I unsubscribed then I’ll print the confirmation page.
- Even worse than that, don’t make me click another link in the confirmation email to complete the unsubscription.
- If you’re going to provide a list of multiple newsletters I can unsubscribe from then select them all by default or at least provide a select all button.
Enhancement to PowerShell Drives Script
I recently posted a script to map local and remote directories to PowerShell drives. Because this script executes when you open a new PowerShell session if you open it while disconnected then any network drives will remain unmapped until you start a new PowerShell session. I’ve resolved this by changing the script to map the drive on the fly when you try to access the drive. Here is the revised script:
$Drives = @{
"dev"="C:\Dev\";
"docs"="C:\Users\WilliamB\Documents\";
"utils"="C:\Utils\";
"drops"="\\server\drops\"
}
foreach ($Name in $Drives.Keys) {
$Location = $Drives.$Name
Invoke-Expression "function global:$($Name): { `
if ( -not (Get-PSDrive $($Name) -ErrorAction SilentlyContinue) ) {
`$null = New-PSDrive -PSProvider FileSystem -Name $Name -Root $Location -Scope Global
}
Push-Location $($Name): `
}"
}
PowerShell Drives
I’ve been reading Pro Windows PowerShell recently, which is without a doubt the best book on the subject I’ve found. One of the cool things about PowerShell is that you can define your own drives that aren’t restricted to a single character name, think Subst on steroids.
I was inspired by this and decided it would be useful to have a script that maps my most commonly used directories to drives. So I created the following script:
$Drives = @{
"dev"="C:\Dev\";
"docs"="C:\Users\WilliamB\Documents\";
"utils"="C:\Utils\";
"drops"="\\server\devdrops\"
}
foreach ($Name in $Drives.Keys) {
$null = New-PSDrive -PSProvider FileSystem -Name $Name -Root $Drives.$Name -Scope Global
Invoke-Expression "function global:$($Name): { Push-Location $($Name): }"
}
The first part of this script creates a hashtable of drive name and destination path, for example, I want the drive dev mapped to C:\Dev\.
The second part of the script loops through each of the keys (drive names) in the hashtable and:
- Creates a new FileSystem drive named after the key ($Name) and rooted at the value ($Drives.$Name). The scope is set to global otherwise when the script finishes executing the drive will be removed.
- Defines a function called $Name: that changes directory to the drive we created. By default, you can’t type a drive name followed by colon to change to that drive like you can for C:, D:, etc. so we mimic this behaviour by defining a global function named $Name:.
These drives will only exist in the PowerShell session, so if you want them to be available every time you run PowerShell then you’ll need to execute this script from your PowerShell profile script. Run Get-Help profile to learn how to do this.
VMWare LabManager: Bad Handle 0×7B4, the handle is invalid
I’ve been doing a bit of work recently with VMWare LabManager. However, when accessing the machine consoles on a variety of operating systems (but always using Internet Explorer
we’d receive the error “Bad Handle 0×7B4, the handle is invalid”.
VMWare have a knowledgebase article about this issue that recommends you disable UAC. I don’t like this solution because I do believe UAC is a good thing and I think it’s important the developers develop and test with UAC enabled to catch UAC issues in their software early (the same reason I think developers should develop on x64).
After discussing the problem with our Internal Systems people they suggested trying to add the site to the Intranet zone, and low and behold, it worked! So I suggest you try this before the more drastic solution of disabling UAC.
PowerShell Get-ChildItem and Hidden/System Files
A little gotcha is that PowerShell’s Get-ChildItem does not return hidden/system files by default (as with the dir command), if you want to include these files you need to include the –Force switch.