HTC Trophy & Windows Phone 7 Review


“Close, but no cigar”… “So near, yet so far”… “Better luck next time”…

It’s hard to know how to begin to write this post, and it’s even harder for me being the semi Microsoft-fanboy that I am. I’ve been using the HTC Trophy and WP7 (Windows Phone 7) OS for a little over a month now. There aren’t many fully independent and unbiased reviews of the WP7 OS yet, so I thought I’d add this to my blog. Don’t be too scared of the opening line, this OS has lots to offer, but it also needs a lot of extra work before it can rival Blackberry/iPhone/Android competitors.

First impressions of the device and OS are good. Navigation through settings, and preference changes are intuitive and generally very easy. It’s live tile ability where “live tile” developed apps can display notifications and updates without it being opened is great, and mostly very quick at performing. Email setup for corporate Exchange and Google/Hotmail is very simple and fast. For me, email ability of the phone is easily comparable to that of a Blackberry. The phone screen clarity is excellent, and this helps its performance on the gaming front. The handset itself is lightweight and very aesthetically pleasing, just a little scratch prone.



For me, one of the best features is the seamless and unified integration of all the various contact hives that everyone now has. Outlook/Exchange contacts, Facebook contacts, Windows Live contacts and Google Gmail contacts are all brought into one place, and where possible, are linked into a single contact view (would love to see Twitter in this as well). So where previously I had an Outlook corporate contact with an email address attribute, a local contact stored in my phone memory with a phone number, and also that person added as a Facebook friend, this is now all in one place. 1 single contact, with email/phone and any latest status updates and Facebook activity in one place. No duplicates! It also means that all my contacts are preloaded with their Facebook profile picture, so incoming calls from a contact display a picture without any additional configuration… None of that running around and taking pictures of your mates to save against a contact business anymore!

The gaming aspect of the phone is superb, a lot of the marketplace games are xbox live enabled/aware, and so any achievement points go towards your Gamerscore. This is all nicely presented on a front screen live tile as well. Most games utilize in one form or another, the devices accelerometer, which I have to say, in the HTC Trophy, is superb. It is very precise, and I’m hard pushed to fault it in any way. Others use touch screen, and as you would expect are also faultless. The choice of games is still a major grumbling point, as are the prices, but this is still a relatively immature OS, and developers are still very much getting to grips with it. Microsoft are however putting their weight behind developers in a bid to push more games/apps onto the WP7 platform by offering payments to developers. Until Rovio release angry birds (this is of critical importance for use as a business phone!). Skype develop a WP7 client, and there is a fully functional voice guided nav app available, I’m remaining sceptical.

http://www.businessweek.com/news/2010-07-14/microsoft-pays-mobile-app-developers-to-catch-apple.html

A lot of people have been barking about the lack of muti-tasking, but for me I haven’t found this to be much of an issue. My emails delivers and sync via live tiles without having an app open, and I can play music while using other apps. For me it’s as functional as it needs to be.

So… That’s the positives. It’s probably easier to get the negatives out in a list format, so here goes…

• Copy/Paste

It’s been said before, and it’ll be said again. I just can’t believe Microsoft launched without this function. When I first starting using the phone, I didn’t think I’d miss it…. I do. When manipulating emails, contacts, text messages…. Allsorts. It’s a big oversight, and needs addressing. Quickly.

• Marketplace

It’s new, and is still work in progress, so the lack of apps/games can be forgiven. However, the stability and usability of the marketplace app desperately need improving. It’s impossible to do any kind of granular search within the marketplace. While trying to search for apps, you end up with results for music artists and games. Put this on top of the frequent crashes of the marketplace app itself (which can only be resolved with a reboot) and it’s a real sore point of the OS.
http://social.answers.microsoft.com/Forums/en-US/windowsphone7/thread/fc8ad1c7-1db3-4ba3-9b31-c655c4f30ff0

• Calendar

The calendar is functional, and quick, but just missing a few things. In single day view, you cannot see the day name. The only way to determine what day a certain date is. Is by exiting back out to monthly view…. Yes, monthly view, there is no weekly view at all. For someone using this as a Blackberry replacement business phone always arranging, and re-arranging appointments, this is painful.

• UC Ability

I’m a UC engineer working in an environment where presence is everything, people using WM6/Symbian/Android devices all have the OCS clients installed on their devices, so they are permanently available. MS still haven’t released a WP7 OCS client, and by the looks of things, there are no plans to in the near future. For the time being, this is the brick wall reason my company will not be rolling out this device/OS. Which is a shame, you would have thought that a Microsoft OS and Microsoft server software should natively be somewhat functional together.

• Wireless

Currently it isn’t possible to connect to any wireless network with a hidden SSID, and yes, I know the risks, yes I know it doesn’t provide any extra security. The fact remains that some businesses, hotspots, hotels etc, use hidden SSID’s, and for such a small addition, I think this needs addressing.

The simple fact is that this OS has been rushed, and the final result just stinks of small issues that have a big effect on end user impression. It’s rumoured that a big update in the first quarter of this year (2011) will address a lot of my and other users concerns. The amount and quality of marketplace apps will grow over time, and hopefully reduced in price. Until then, the WP7 OS, for me has bridged the gap between the iPhone/Android devices being very much personal gaming machines, and Blackberry devices being hardcore business machines. It still has some way to go before it comes the force that Microsoft hope it to be though.

My Home Network

A prerequisite of working in IT is the need for an overcomplex home network setup. With that in mind, i thought i'd share some details of mine. I'm a big fan of media. Pictures, videos, films, TV series. The media streaming ability of my network is its biggest advantage.

I use the endpoints in both my living room and bedroom to stream media from the Twonky media server installed on the Western Digital 4Tb NAS. The Twonky server and both the Xbox and PS3 endpoints use DLNA for this.

My IP camera uploads images to the WD NAS upon motion detection and keeps a watchful eye over my garden shed. Alerts are also sent remotely to my WP7 handheld device for when i'm not at home.

The DDWRT firmware on my Linksys router allows IPSEC VPN setup and dynamic DNS updates for easy and secure remote access.

OCS Edge Server Wizard Fails

Like many others i have a set procedure for building up new server instances. And one of those procedures is bring the machine fully upto the latest service pack and patch level with all the most recent hotfixes and bug fixes. After running through this procedure recently, then attempting to install the OCS 2007 R2 Edge server services, my install wizard failed, with the following error, and i was left wondering why.

Failure
[0xC3EC78D8] Failed to read the Office Communications Server version information. This can happen if the computer clock is not set to correct date and time






I checked both the time and date of the system, and as i suspected, they were both fine, all were in sync with other network members.

I eventually tracked the issue down to one of my previously installed KB fixes, (KB974571)
.
It appears that this issue is well known about with the OCS community, here a re a few links on it...
http://communicationsserverteam.com/archive/2009/10/14/632.aspx
http://support.microsoft.com/kb/974571

Uninstalling the patch, then rerunning the edge server wizard, resolved my issues, and the install proceeded successfully.

Changing Twonky Media Content Base Path

So I recently purchased a new NAS drive for my home network. I have a large music library, and even larger library of digital pictures so went whole hog and got the new Western Digital MybookWorld 2, 4Tb version. This comes pre-installed with Twonky Media Server. I created a folder structure to match that of my existing NAS drive and copied the contents over, then set about configuring the Twonky Media Server (I use this to stream my Videos/Music/Pictures to endpoints around my house, Xbox 360, PS3, Iphone). Only to find that the Twonky media server is preconfigured to a base content path 2 folder structures higher than I have placed my media! :|

When I attempted to specify a new content location in Twonky I couldn’t select the new folders I had created (even when attempting to start the path with ../../Datavolume/Media). When examining the log files that Twonky creates I noticed that there was a contentbase defined as..

“INI value:contentbase=/DataVolume/Public/”

Whereas all my media was located in “/DataVolume/Media/”. I did find a few ways of changing this value which consisted of enabling ssh onto the nas, and altering the twonky ini file with vi. While I am extremely competent with Linux and Vi afer working as an Oracle DBA for a number of years I steered clear of this for the following reasons.
..

A) My Western Digital warranty going bye bye! (I paid £300+ pounds for the nas and don’t want to lose it!)
B) Should the procedure go wrong I wasn’t looking forward to reinstalling Twonky from scratch!

I found the following (not very well documented) procedure to change the URL from a browser window. Just enter the command in your address window and follow any credential prompts if you have authentication enabled.

http://IP:Port/rpc/set_option?contentbase=New Base Path

For Example…
http://192.168.1.10:9000/rpc/set_option?contentbase=/DataVolume/Media


OCS/Outlook Integration Presence Issues

We have been having a few issues with getting the OCS Presence Indictator working correctly with Outlook 2007. When you hover over the presence jelly bean in the Preview Pane, you get ‘Presence Unknown’ even through OCS and even Sharepoint detect the correct status:

OCS Presence Unknown

After some extensive research, most people recommend the following registry key settings:

"REG_DWORD HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Common\PersonaMenu\RTCApplication=3"
"REG_DWORD HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Common\PersonaMenu\RTCApplication=3"

"HKEY_CURRENT_USER\Software\Policies\Microsoft\Office\12.0\Outlook\IM] "SetOnlineStatusLevel"=dword:00000003"
[HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Common\PersonaMenu]
"QueryServiceForStatus"=dword:00000002

However, this didnt seem to resolve the issue. By experimentation, we tried:

[HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Common\PersonaMenu]
"QueryServiceForStatus"=dword:00000002

and changed the dword value to 3. The presence is now working as expected. According to the Microsoft site, this can only be set to 0, 1 or 2.

Feel free to investigate and let me know how you get on!

Lync Server 2010 Publishing Topology - MSDE SQL Instance

So after resolving the issue below with regards to installing Lync Server using the wrong credentials, i then hit another problem with the Central Management Store. This time the error was...

Error:
An error occurred: "System.UnauthorizedAccessException" "Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))"



And the event log showed the following...


Log Name: System

Source: LsaSrv

Date: 15/11/2010 11:00:36

Event ID: 6037

Task Category: None

Level: Warning

Keywords: Classic

User: N/A

Computer: LyncPool.LyncTest.Local


Description:

The program sqlservr.exe, with the assigned process ID 2368, could not authenticate locally by using the target name MSSQLSvc/testpool.lynctest.local:49245. The target name used is not valid. A target name should refer to one of the local computer names, for example, the DNS host name. Try a different target name.

I determined that this was because of loopback checking in my particular setup. In that the hostname of my Lync pool server was lyncpool.lynctest.local and my pool name was lynctest.lynctest.local.

The solution was to add a registry key to disable loopback checking.


Run regedit and browse to the following...
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa

Create a dword with the following values
DisableLoopbackCheck Value:1

Oh, and Kudos to Kevin Feasel who's blog i found this solution on.

Outlook Signatures Centralized

Keeping every ones Outlook email signature in line with company policy is a nightmare of a task. You often find users edit it slightly with images, different symbols for their phone number and most of all, the constant change in upcoming events or products.

I needed to find a solution that centralised signature management, without the cost of a third party application or more software for IT to support. After searching the internet, VB seemed like the best option. The full script can be downloaded here. Simply download the file and rename it to .vbs.

The script can be deployed as a login script with group policy and gives Administrators:

- Centralised Control over Events and Formatting
- Automated Job Title, Phone Number and Email Address Control
- Piece of mind that corporate image is being portrayed.

Lync Server 2010 Publishing Topology Error


Came across this one today, when publishing your selected topology from the Lync Server Topology Builder, the publishing wizard fails at the first step of "Creating Central Management Store". The following will also be logged in the deployment log.

Error: An error occurred: "Microsoft.Rtc.Management.Deployment.DeploymentException" "Cannot determine where to install database files because Windows Management Instrumentation on the database server is unavailable from your computer or user account. To continue, you can resolve this issue, or you can specify where you want to install the files."

.......... Have you logged in as a member of the "CSAdministrator" group.....

Server 2008 Slow Logon Network Access – TCP Offload & TCP Autotuning

TCP offload or "chimney offload" provides a direct connection (a "chimney") between applications and a TCP offload-capable NIC. This feature enables such a NIC to perform TCP processing for offloaded connections which reduces processor overhead and makes network communications more efficient. Another feature in Server 2008 TCP/IP is Receive Window Auto-Tuning Level for TCP connections. TCP AutoTuning enables TCP window scaling by default and automatically tunes the TCP receive window size for each individual connection based on the bandwidth delay product (BDP) and the rate at which the application reads data from the connection. Theoretically, with TCP auto-tuning, network connection throughput in Server 2008 should be improved for best performance and efficiency. However, this is not always the case. Unfortunately, these “features” can cause many untold issues with specific physical/virtual hardware. In our environment we experienced very slow logon times (2003 active directory functional level with 2008 member servers), LDAP failures and generally very slow network access from the 2008 member servers. An MS support ticket suggested we disabled the autotuning and offloading, which successfully resolved our issues.

To check the current state of chimney offload and TCP autotuning, run the following command.

netsh interface tcp show global

To disable chimney offloading and TCP autotuning, run the following command.

netsh interface tcp set global chimney=disabled autotuninglevel=disabled

Moving SQL 2005 System Databases - Step By Step Instructions

Moving SQL System Database Files

MASTER DATABASE

1) Update the –d –l and –e paths on the startup parameters to the intended new location

-dE:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\master.mdf;-eE:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\LOG\ERRORLOG;-lE:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\mastlog.ldf

2) Shutdown sql server

3) Move the master.dbf and master.ldf files

Ensure that the log file directory in the new location is created ready

4) DO NOT STARTUP THE DB AT THIS POINT (THE MASTER AND RESOURCE DATABASE HAVE TO BE MOVED AND LOCATED IN THE SAME DIRECTORY!)

RESOURCE DATABASE

1) Run net start mssqlserver /f /T3608 from command prompt to start the server in single user and master recovery only mode

2) Close the object explorer in SQL Server Management Studio (as this uses your one connection)

3) ALTER DATABASE mssqlsystemresource

MODIFY FILE (NAME=data, FILENAME= 'E:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\mssqlsystemresource.mdf');

GO
ALTER DATABASE mssqlsystemresource
MODIFY FILE (NAME=log, FILENAME= 'E:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\mssqlsystemresource.ldf');
GO

4) ALTER DATABASE mssqlsystemresource SET READ_ONLY;


5) Shutdown the DB

6) Move the files to the new location

7) Restart the services normally

8)
SELECT name, physical_name AS CurrentLocation, state_desc

FROM sys.master_files
WHERE database_id = DB_ID('master');
GO

TEMP DATABASE

1)
USE master;

GO
ALTER DATABASE tempdb
MODIFY FILE (NAME = tempdev, FILENAME = 'E:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\tempdb.mdf');
GO

ALTER DATABASE tempdb
MODIFY FILE (NAME = templog, FILENAME = 'E:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\templog.ldf');
GO

2) Restart the services

3) Verify files exist in new location

4)
SELECT name, physical_name AS CurrentLocation, state_desc

FROM sys.master_files
WHERE database_id = DB_ID(N'tempdb');

5) Delete files from old location

MODEL AND MSDB DATABASES

1) ALTER DATABASE model MODIFY FILE ( NAME = modeldev , FILENAME = 'E:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\model.mdf' )

2) ALTER DATABASE model MODIFY FILE ( NAME = modellog , FILENAME = 'E:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\modellog.ldf' )

3) ALTER DATABASE msdb MODIFY FILE ( NAME = msdbdata , FILENAME = 'E:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\msdbdata.mdf' )

4) ALTER DATABASE msdb MODIFY FILE ( NAME = msdblog , FILENAME = 'E:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\msdblog.ldf' )

5) Shutdown the sql services

6) Move the files to the new location

7) Startup the instance again

8) Check the new paths using the following statements…

use model
go
sp_helpfile
go

use msbd
go
sp_helpfile
go

Good luck!

Passive node cluster service issues following Windows Updates



I recently came across the following issue, and found very little documentation online about it, so thought i'd add it here to help others. Following the installation of some windows updates security patches onto a passive SQL cluster node, the cluster service refused to start. Event id 7031, 1073, 1173, 1123 were all logged in the system event log.

Event Type: Warning
Event Source: ClusSvc
Event Category: Node Mgr
Event ID: 1123
Date: 01/11/2010
Time: 13:21:56
User: N/A
Computer: PASSIVENODE
Description:
The node lost communication with cluster node 'ACTIVENODE' on network 'Heartbeat (Left)'.
--------------------------------
Event Type: Error
Event Source: ClusSvc
Event Category: Membership Mgr
Event ID: 1173
Date: 01/11/2010
Time: 13:22:39
User: N/A
Computer: PASSIVENODE
Description:
Cluster service is shutting down because the membership engine detected a membership event while trying to join the server cluster. Shutting down is the normal response to this type of event. Cluster service will restart per the Service Manager's recovery actions.
--------------------------------
Event Type: Error
Event Source: ClusSvc
Event Category: Startup/Shutdown
Event ID: 1073
Date: 01/11/2010
Time: 13:22:39
User: N/A
Computer: PASSIVENODE
Description:
Cluster service was halted to prevent an inconsistency within the server cluster. The error code was 5890.

After numerous network traces and diagnostics i discovered that one of the windows updates previously installed (KB97546) had updated a file named MSV1_0.dll on the passive cluster, this had caused a version mismatch and was the cause of the problems. The active node had a file version 5.2.3790.4587 where as the passive node had 5.2.3790.3959.

Before discovering the mismatch we had already evicted the passive node from the cluster, so i can't say whether just uninstalling KB975467 from the passive node would resolve the issues. Most likely, it will.


Below was my full set of troubleshooting/resolution steps.

  • Suspected a Network Issue so collected Network Monitor Trace for Heartbeat NIC - came out clean.
  • Evicted NODE B from cluster and ran, cluster.exe node /forcecleanup
  • Tried adding NODE B in cluster but it failed to start Cluster Service during the join process.
  • Confirmed following registry entries on both the nodes were the same,

Verified that HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\LMCompatibilityLevel and it is set to 2.

Verified that HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\lmcompatibilitylevel and restrictanonymous are the same on all nodes.

Verified that HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0\ntlmminclientsec and ntlmminserversec are the same on all nodes.

  • Verified the Cluster Service Account Password used was correct and not expired.
  • Checked HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Cluster Server and Clusterinstallationstate was set to 1 on passive node and it was set to 2 on active node.
  • Confirmed the subnet mask for all the interfaces in cluster on both the nodes were configured correctly.
  • Investigated installed KB's and noticed that there was a mismatch in the file version of MSV1_0.dll between the cluster nodes.
  • Tried replacing the .dll file from NODE A but that did not help.
  • Uninstalled KB 975467 from NODE B and the file version was reverted to 5.2.3790.4530.
  • Successfully re added the passive node into the cluster and restarted the cluster service.
Hope this helps someone else out!