IT Ramblings

Ramblings from an IT manager and long time developer.


English Pronunciation -- a very cool poem

If you can pronounce correctly every word in this poem, you will be speaking English better than 90% of the native English speakers in the world. After trying the verses, a Frenchman said he’d prefer six months of hard labour to reading six lines aloud.

Dearest creature in creation,
Study English pronunciation.
I will teach you in my verse
Sounds like corpse, corps, horse, and worse.
I will keep you, Suzy, busy,
Make your head with heat grow dizzy.
Tear in eye, your dress will tear.
So shall I! Oh hear my prayer.
Just compare heart, beard, and heard,
Dies and diet, lord and word,
Sword and sward, retain and Britain.
(Mind the latter, how it’s written.)
Now I surely will not plague you
With such words as plaque and ague.
But be careful how you speak:
Say break and steak, but bleak and streak;
Cloven, oven, how and low,
Script, receipt, show, poem, and toe.
Hear me say, devoid of trickery,
Daughter, laughter, and Terpsichore,
Typhoid, measles, topsails, aisles,
Exiles, similes, and reviles;
Scholar, vicar, and cigar,
Solar, mica, war and far;
One, anemone, Balmoral,
Kitchen, lichen, laundry, laurel;
Gertrude, German, wind and mind,
Scene, Melpomene, mankind.
Billet does not rhyme with ballet,
Bouquet, wallet, mallet, chalet.
Blood and flood are not like food,
Nor is mould like should and would.
Viscous, viscount, load and broad,
Toward, to forward, to reward.
And your pronunciation’s OK
When you correctly say croquet,
Rounded, wounded, grieve and sieve,
Friend and fiend, alive and live.
Ivy, privy, famous; clamour
And enamour rhyme with hammer.
River, rival, tomb, bomb, comb,
Doll and roll and some and home.
Stranger does not rhyme with anger,
Neither does devour with clangour.
Souls but foul, haunt but aunt,
Font, front, wont, want, grand, and grant,
Shoes, goes, does. Now first say finger,
And then singer, ginger, linger,
Real, zeal, mauve, gauze, gouge and gauge,
Marriage, foliage, mirage, and age.
Query does not rhyme with very,
Nor does fury sound like bury.
Dost, lost, post and doth, cloth, loth.
Job, nob, bosom, transom, oath.
Though the differences seem little,
We say actual but victual.
Refer does not rhyme with deafer.
Foeffer does, and zephyr, heifer.
Mint, pint, senate and sedate;
Dull, bull, and George ate late.
Scenic, Arabic, Pacific,
Science, conscience, scientific.
Liberty, library, heave and heaven,
Rachel, ache, moustache, eleven.
We say hallowed, but allowed,
People, leopard, towed, but vowed.
Mark the differences, moreover,
Between mover, cover, clover;
Leeches, breeches, wise, precise,
Chalice, but police and lice;
Camel, constable, unstable,
Principle, disciple, label.
Petal, panel, and canal,
Wait, surprise, plait, promise, pal.
Worm and storm, chaise, chaos, chair,
Senator, spectator, mayor.
Tour, but our and succour, four.
Gas, alas, and Arkansas.
Sea, idea, Korea, area,
Psalm, Maria, but malaria.
Youth, south, southern, cleanse and clean.
Doctrine, turpentine, marine.
Compare alien with Italian,
Dandelion and battalion.
Sally with ally, yea, ye,
Eye, I, ay, aye, whey, and key.
Say aver, but ever, fever,
Neither, leisure, skein, deceiver.
Heron, granary, canary.
Crevice and device and aerie.
Face, but preface, not efface.
Phlegm, phlegmatic, ass, glass, bass.
Large, but target, gin, give, verging,
Ought, out, joust and scour, scourging.
Ear, but earn and wear and tear
Do not rhyme with here but ere.
Seven is right, but so is even,
Hyphen, roughen, nephew Stephen,
Monkey, donkey, Turk and jerk,
Ask, grasp, wasp, and cork and work.
Pronunciation (think of Psyche!)
Is a paling stout and spikey?
Won’t it make you lose your wits,
Writing groats and saying grits?
It’s a dark abyss or tunnel:
Strewn with stones, stowed, solace, gunwale,
Islington and Isle of Wight,
Housewife, verdict and indict.
Finally, which rhymes with enough,
Though, through, plough, or dough, or cough?
Hiccough has the sound of cup.
My advice is to give up!!!

English Pronunciation by G. Nolst Trenité


Remove and Re-add product key for Office 2013 and Office 365

Having been on Microsoft Office 365 for a few months now, we started to notice that when users who had activated software on a PC were removed from Office 365, the software would go into "grace period" and would continually notify the new user of the PC that there was a problem. The trouble was I could not figure out how to reassign the software license to the new user. Finally I have found steps that will accomplish this without having to repair/reinstall office.

Open Command Prompt on PC
Open a Command Prompt window, and then take one of the following actions:

  • If you installed the 64-bit version of Office 2013, move to the following folder: C:\Program Files\Microsoft Office\Office15
  • If you installed the 32-bit version of Office 2013, move to the following folder: C:\Program Files (x86)\Microsoft Office\Office15

Display the Current License(s)
Type the following command to display the license status. Note the last five characters of any and all license keys that display in the output:

cscript ospp.vbs /dstatus

Remove the License(s)
Now run the following command as many times as needed to remove all of the license keys you noted from the previous step.

cscript ospp.vbs /unpkey:[LAST 5 numbers of existing product key]

Restart the Computer

Once the remove commands are successfull, close the command prompt and restart the PC.

Reactivate MS Office 2013 with New Account

Launch one of the MS Office 2013 applications (I like to use Word). The application should prompt you to reactivate the by providing your sign-on ID. Enter in the new user's credentials and the software will now be licensed under their ID.

Project 2013 and Project Server 2013 Technical Training Links

Microsoft Training Links

Project 2013 training for IT pros and developers

General Link:

Development Links

Administration Links:

Office Web Apps 2013 Server Install and Configuration

Copied from here

Installing Office Web Apps

Office Web Apps 2013 is a stand-alone server web application that provides capabilities to open and render a Microsoft Office Word, Excel, PowerPoint, or OneNote document as a web page. Microsoft SharePoint 2013, Exchange 2013, and Lync 2013 can share the rendering service to display Office documents in those applications as a web page. Additionally, when accessed from within a SharePoint 2013 farm, Office Web Apps also enables rich editing features for those documents.

Note: You cannot install Office Web Apps on the same server as SharePoint 2013

Please follow the server preparation process in the following sections for the appropriate server, either Windows Server 2008 R2 or Windows Server 2012.

Windows Server 2008 R2 Preparation

Start by installing the following prerequisite software for Windows Server 2008 R2:

Open a PowerShell command running as an Administrator and execute the following commands to install the required roles and services for Office Web Apps.

Import-Module ServerManager
## Run the following command as a single line
Add-WindowsFeature Web-Server,Web-WebServer,Web-Common-Http,Web-Static-Content,Web-App-Dev,Web-Asp-Net,Web-Net-Ext,Web-ISAPI-Ext,Web-ISAPI-Filter,Web-Includes,Web-Security,Web-Windows-Auth,Web-Filtering,Web-Stat-Compression,Web-Dyn-Compression,Web-Mgmt-Console,Ink-Handwriting,IH-Ink-Support

Please continue with the “Office Web Apps Installation” section below.

Windows Server 2012 Preparation

To begin, open a PowerShell command running as an Administrator and execute the following commands to install the required roles and services for Office Web Apps.

Add-WindowsFeature Web-Server,Web-Mgmt-Tools,Web-Mgmt-Console,Web-WebServer,Web-Common-Http,Web-Default-Doc,Web-Static-Content,Web-Performance,Web-Stat-Compression,Web-Dyn-Compression,Web-Security,Web-Filtering,Web-Windows-Auth,Web-App-Dev,Web-Net-Ext45,Web-Asp-Net45,Web-ISAPI-Ext,Web-ISAPI-Filter,Web-Includes,InkandHandwritingServices

Please continue with the “Office Web Apps Installation” section below.

Office Web Apps Installation

Open and run the Office Web Apps setup.exe media to launch the setup wizard.

  1. In the Office Web Apps Server 2013 Wizard, on the Read the Microsoft Software License Terms page, select I accept the terms of this agreement and then select Continue.
  2. On the Choose a file location page, select the folder where you want the Office Web Apps Server files to be installed (for example, C:\Program Files\Microsoft Office Web Apps), and then select Install Now. Note that, if this folder does not exist, Setup will create it for you.
    The Choose a file location screen on the Office Web Apps install wizard.

    The Choose a file location screen on the Office Web Apps install wizard.

  3. When Setup finishes installing Office Web Apps Server, choose Close.

After installing the Office Web Apps 2013 server software, you are ready to install any additional add-ins and updates. You can also install any language packs your farm requires. To install the language packs, run the setup media for each of the language packs you desire.

If applicable, install the latest service pack Microsoft has released for Office Web Apps 2013 and then apply the latest service packs Microsoft has released for Office Web Apps 2013 language packs.

Finally, check for updates on Microsoft Update in the server’s control panel.

Configuring Office Web Apps

This section describes how to configure an Office Web Apps farm and join servers to it.

Important: Low memory conditions can cause Office document previews to fail in Office Web Apps. Verify that any servers that run Office Web Apps have sufficient memory.

On the first server for the Office Web Apps farm, execute the following PowerShell command to provision the farm:

New-OfficeWebAppsFarm -InternalUrl "" -ExternalUrl "" -SSLOffloaded –EditingEnabled

The SSLOffloaded command switch configures Office Web Apps for hardware load-balancing, where the load-balancing device manages the SSL certificate and then relays the request to an Office Web Apps server over HTTP unencrypted traffic. This improves the overall performance but does require a secure network between the load-balancer and the Office Web Apps servers.

The following image provides an example of the expected output from the PowerShell command.

PowerShell results from configuring an Office Web Apps farm

PowerShell results from configuring an Office Web Apps farm

Critical: Before you can use the Office Web Apps farm, you must add your domain to the list of allowed hosts.

Run the following PowerShell command to add your domain to the list of allowed hosts, substituting your domain for “”

New-OfficeWebAppsHost -Domain

Once you have provisioned an Office Web Apps farm and allowed your domain, you can join additional Office Web Apps servers to the farm. To join additional servers, install the Office Web Apps software by following the steps in the previous section and then execute the following PowerShell command.

New-OfficeWebAppsMachine –MachineToJoin “

You can test the Office Web Apps configuration by navigating to this URL and verifying it displays a Web app Open Platform Interface (WOPI)-discovery XML file:

Note: For more information on deploying and configuring Office Web Apps, please see this TechNet article:

Configuring the Windows Firewall for Office Web Apps Traffic

On each Office Web Apps 2013 Server, you will need to set a firewall rule to allow Office Web Apps inter-farm traffic and HTTP/HTTPS traffic. Alternatively, you can disable the Windows Firewall if you choose and if you have another firewall solution.

You can set the Windows Firewall rules by navigating to the Control Panel, then click System and Security, then click Windows Firewall, and finally click Advanced settings. In the Inbound Rules area, ensure that the server allows connections on port 80 (HTTP) and port 443 (HTTPS). Add the port for the Office Web Apps inter-farm communication by following these steps:

  1. In the Windows Firewall with Advanced Security window, click Inbound Rules.
  2. In the Actions panel, click New rule…
  3. In the New Inbound Rule Wizard window, select Ports as the Rule Type and click Next.
  4. Select TCP and enter “809” for the Specific local ports. Click Next.
    Windows Firewall Port Rule for Office Web Apps communication

    Windows Firewall Port Rule for Office Web Apps communication

  5. Click Next. On the Profile screen, uncheck Public and click Next.
  6. On the Name screen, enter “Office Web Apps Inter-Farm Communication” and click Finish.

Configuring a SharePoint 2013 Farm for Office Web Apps

Logon to the SharePoint application server that hosts Central Administration and open the SharePoint 2013 Management Shell (PowerShell), running it as an administrator. Next, enter the following PowerShell command:

New-SPWOPIBinding -ServerName “

Run the following PowerShell command to enabled OAuth over HTTP.

$config = (get-spsecuritytokenserviceconfig)
$config.allowoauthoverhttp = $true

Run the following PowerShell command to change the WOPI zone to external-https.

Set-SPWOPIZone –zone “external-https”

Finally, verify that Office Web Apps is working by navigating to a SharePoint 2013 document library and verify that you can open a document as a web page.

Note: For more information on how to configure a SharePoint 2013 farm to use Office Web Apps and for troubleshooting information, please see this TechNet article:


System.ServiceModel.ServiceActivationException: The service ‘/SecurityTokenServiceApplication/securitytoken.svc’ cannot be activated due to an exception during compilation.

Re-post from here

I had performed an in-place upgrade of a Team Foundation Server from Windows Server 2012 to Windows Server 2012 R2. Overall, no issues detected until a couple of weeks later when all the Developers came back to work (after XMas break) and informed me that Documents were not available via the Visual Studio 2012 application. The following error was occurring in Visual Studio; Please contact your administrator. There was an error contacting the server.Technical information (for administrator): HTTP code 200: OK
So off to the TFS Server it was….

First stop was the Event Viewer and there were two errors that I believe were related and occurring.

Error 1 – Event ID 3 System.ServiceModel WebHost failed to process a request. 

Sender Information:System.ServiceModel.ServiceHostingEnvironment+HostingManager/4032828 
Exception: System.ServiceModel.ServiceActivationException: The service ‘/SecurityTokenServiceApplication/securitytoken.svc’ cannot be activated 
due to an exception during compilation. 

The exception message is: Exception has been thrown by the target of an invocation.. —> System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. —> System.ArgumentNullException: Value cannot be null. Parameter name: certificate at System.IdentityModel.Tokens.X509SecurityToken..ctor(X509Certificate2 certificate, String id, Boolean clone, Boolean disposable) at System.IdentityModel.Tokens.X509SecurityToken..ctor(X509Certificate2 certificate) at Microsoft.SharePoint.Administration.Claims.SPSecurityTokenServiceManager.ConfigureTokenHandlerCollection(SPSecurityTokenServiceManager manager, SecurityTokenHandlerCollectionManager collectionManager, String key, SecurityTokenHandlerCollection& tokenHandlerCollection) at Microsoft.SharePoint.IdentityModel.SPSecurityTokenServiceConfiguration.ConfigureTokenHandlerCollectionForLocalIssuer(SPSecurityTokenServiceManager manager, SecurityTokenHandlerCollectionManager collectionManager, String key) at Microsoft.SharePoint.IdentityModel.SPSecurityTokenServiceConfiguration..ctor() — End of inner exception stack trace — at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean&bNeedSecurityCheck) at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) at System.Activator.CreateInstance(Type type, Boolean nonPublic) at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, StackCrawlMark& stackMark) at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes) at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture) at Microsoft.IdentityModel.Protocols.WSTrust.WSTrustServiceHostFactory.CreateSecurityTokenServiceConfiguration(String constructorString) at Microsoft.IdentityModel.Protocols.WSTrust.WSTrustServiceHostFactory.CreateServiceHost(String constructorString, Uri[] baseAddresses) at Microsoft.SharePoint.IdentityModel.SPSecurityTokenServiceHostFactory.CreateServiceHost(String constructorString, Uri[] baseAddresses) at System.ServiceModel.ServiceHostingEnvironment.HostingManager.CreateService(String normalizedVirtualPath, EventTraceActivity eventTraceActivity) at System.ServiceModel.ServiceHostingEnvironment.HostingManager.ActivateService(ServiceActivationInfo serviceActivationInfo, EventTraceActivity eventTraceActivity) at System.ServiceModel.ServiceHostingEnvironment.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath, EventTraceActivity eventTraceActivity) — End of inner exception stack trace — at System.ServiceModel.ServiceHostingEnvironment.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath, EventTraceActivity eventTraceActivity) at System.ServiceModel.ServiceHostingEnvironment.EnsureServiceAvailableFast(String relativeVirtualPath, EventTraceActivity eventTraceActivity) Process Name: w3wp Process ID: 5664

Error 2 – Error ID 8306 SharePoint Foundation

An exception occurred when trying to issue security token: 
The requested service, ‘http://localhost:32843/SecurityTokenServiceApplication/securitytoken.svc’ could not be activated. 
See the server’s diagnostic trace logs for more information.. 

Error 3 – Error ID 6398

The Execute method of job definition Microsoft.Office.Server.UserProfiles.LMTRepopulationJob (ID 1b0c4725-fbcf-476d-af60-3aeabbdbd35c) threw an 
exception. More information is included below. System.ServiceModel.ServiceActivationException 

The common problem here appeared to me to be with relation to the SecurityTokenServiceApplication, which can be sussed out within IIS… First I check that the Application Pool was configured with correct TFS Account and started…check Next went to browse the SecurityTokenServiceApplication web page itself (IIS Manager –> Sites –> SharePoint WebServices –> SecurityTokenServiceApplication, click on ‘Content View’ down at the bottom, right click on Securitytoken.svc and click Browse)…ERROR Basically you get a ‘Server Error in ‘/..’ Application + Error 1 above, or Internet Explorer cannot display the webpage etc.
From here I knew that the only way to fix this was to focus on the SecurityTokenServiceApplication web service but I wasn’t really sure where to start except that I knew this would be easy with PowerShell. :)

Thanks to gurus such as Syed and Abhishek Saigal, this is what fixed my issue.

The below PowerShell commands re-provisions all the SharePoint Web Services.
Don’t worry about losing any data/applications on SharePoint, all will remain intact.
Run the following commands one by one on SharePoint PowerShell:

$h = Get-SPServiceHostconfig 
$services = Get-SPServiceApplication 
foreach ($service in $services) { $service.provision(); write-host $} 

The output will take a little time and display each service one after another, patiently wait until it finishes.
Perform an IIS Reset and give another shot to browsing ‘http://localhost:32843/SecurityTokenServiceApplication/securitytoken.svc’ This page then displayed correctly, e.g. no error messages and Documents then worked within Visual Studio.

How to Profile a SharePoint/Project Server 2013 Workflow using dotTrace

Thought I’d put together a small “How to” for Profiling a SharePoint (or Project Server) 2013 workflow   The steps below are using a 10 day trial of dotTrace from jetbrains – that said, the same “idea” can be used by any profiling tool.

  1. First thing to do is download a copy of dotTrace from Jetbrains from their website (  After you install this, you’ll have 10 days to use it without any limitations.
  2. Once it is installed, look for the dotTrace icon  , and start the application up.

  3. One the app is up and running, click on the “Attach to Process” button at the top

  4. Next, Find the process “Microsoft.Workflow.ServiceHost.exe”

  5. At this point you're “tracing” in enabled.  And you will see a dialog like this

  6. Now you can run your tests that execute the workflow.  One you are done, click the “Get Snapshot” button on the tracing dialog

  7. At which point a snapshot file will open that contains all of the information (summary screen blow)

  8. Click on the “Plain List” icon

  9. At this point you can look through the various calls, the time each call took, etc (sample below)


Manually enable Appear Offline in Lync 2013 via Registry

Lync 2013, just as with previous releases, allows the ability to Appear Offline. And just as with previous releases, you can enable this functionality in the Lync Client Policies. For information on how Lync Client Policies work, see my post here. To enable Appear Offline through Client Policy against the Global Policy, use the following command:

Get-CSClientPolicy | Set-CSClientPolicy -EnableAppearOffline $true

This will require a Lync 2013 client restart.

As an Administrator, you may not want to make this change to a Client Policy as the goal of Lync is to promote collaboration, not inhibit it by having users Appear Offline and hide from other users. At the same time, you may want to enable it for a user or two at request and won’t want to have to bother providing this small group of users their own Client Policy. Lync 2010 provided the ability to do that via registry key. Mike Pfeiffer provides a great article on Lync 2010 for setting the Lync 2010 registry key to manually enable Appear Offline in Lync 2010. You can see his article here.

The goal of this article is to show how to do the same in Lync 2013. Because Lync 2013 is now a part of Office 2013, Lync 2013 registry items are now under the Office 2013 registry section (Office 15.0). There are two ways to set this registry:

  1. Cmd.exe
  2. Regedit.exe

Using Cmd.exe

The type the following command:

Reg Add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Office\15.0\Lync" /V "EnableAppearOffline" /D 1 /T REG_DWORD /F

Using Regedit.exe

  1. Start regedit.exe
  2. In Registry Editor, expand HKEY_LOCAL_MACHINE, expand Software, expand Policies, expand Microsoft, expand Office, expand 15.0, expand Lync
  3. Right-click the Lync registry key, point to New, and then click DWORD (32-bit) Value
  4. After the new value is created, type EnableAppearOffline to rename the value.
  5. Double-click the new EnableAppearOffline registry value.
  6. After the new value is created, type EnableAppearOffline to rename the value.
  7. Double-click the new EnableAppearOffline registry value.
  8. In the Edit DWORD (32-bit) Value dialog box, type 1 in the Value data box, and then click OK.

New-SPConfigurationDatabase – This SharePoint farm currently has pending upgrades

New-SPConfigurationDatabase : The pipeline has been stopped. 

At C:Usersadministrator.GENDesktopAutoSPInstallerSP2010AutoSPInstallerAutoSPInstaller.ps1:576 char:31 

+             New-SPConfigurationDatabase <<<<  –DatabaseName “$ConfigDB” –DatabaseServer “$DBServer” –AdministrationContentDatabaseName “$CentralAdminContentDB” –Passphrase $SecPhrase –FarmCredentials $Cred_Farm 

    + CategoryInfo          : InvalidData: (Microsoft.Share…urationDatabase:SPCmdletNewSPConfigurationDatabase) [New-SPConfigurationDatabase], PipelineStoppedException 

    + FullyQualifiedErrorId : Microsoft.SharePoint.PowerShell.SPCmdletNewSPConfigurationDatabase 

Microsoft.SharePoint.SPException: This SharePoint farm currently has pending upgrades.  The cmdlet New-SPConfigurationDatabase cannot be executed until the upgrade is completed. 

   at System.Management.Automation.MshCommandRuntime.ThrowTerminatingError(ErrorRecord errorRecord) 

This SharePoint farm currently has pending upgrades.  The cmdlet New-SPConfigurationDatabase cannot be executed until the upgrade is completed. 

At C:Usersadministrator.GENDesktopAutoSPInstallerSP2010AutoSPInstallerAutoSPInstaller.ps1:576 char:31 

+                                             New-SPConfigurationDatabase <<<<  –DatabaseName “$ConfigDB” –DatabaseServer “$DBServer” –AdministrationContentDatabaseName “$CentralAdminContentDB” –Passphrase $SecPhrase –FarmCredentials $Cred_Farm 

    + CategoryInfo          : InvalidOperation: (:) [New-SPConfigurationDatabase], SPException 

    + FullyQualifiedErrorId : Microsoft.SharePoint.PowerShell.SPCmdletNewSPConfigurationDatabase 


luckily there is a pretty easy fix -- run the following command and it will fix the issue (note: you can ignore the error that the command returns)


psconfig -cmd upgrade -inplace b2b -wait -force


What-If Analysis with Microsoft Project

What-If Analysis with Microsoft Project 2010   


I’ve attended a couple Microsoft Project 2010 events as of late, but of yet, I haven’t seen this functionality getting much play.  On first glance, I think this could be one of the most compelling new features added to Project: the task level Active field.

Usage Scenarios

Scenario #1: The project manager has been requested to calculate the cost and schedule impact of a potential change order.  The change order is developed as a series of extra tasks in the MPP file.  Based on that model, the change request is submitted to the project stakeholders.  They deliberate for several weeks. 

During that time, the project schedule is updated repeatedly.  As the project manager cannot very well report on the project with the unapproved change order requests included, the PM will have to remove the tasks and reinsert them later once the change order has been approved.

Fast forward, and now the stakeholders have approved the change request.  Now the PM has to go back to the change order calculations and reinsert them into the updated project schedule, hoping that the calculations of cost and schedule impact haven’t changed significantly.


With the Active field.  I can now add the change order, but render it inactive so that it is not included in status reporting or resource allocation calculations.  Whenever I need to revalidate the change order calculations, I can toggle the Active status to yes and review the schedule.


Scenario #2: I wish to remove tasks from a baselined in-progress schedule.  Generally, deleting tasks is frowned upon as this does not change the rolled up baseline calculations, and you therefore are removing a record of how that original baseline was calculated.  The guidance in 2007 was to zero out the remaining work on the removed tasks and then to prefix the name with something like “DELETED-Task1”.  Needless to say, this has been know to confuse project stakeholders.

Now I can simply render them inactive.  This keeps the original baseline calculations but allows me to track the historical record of how the baseline was developed:


This also allows me to start tracking the cost savings associated with eliminating specific tasks by grouping on inactive tasks with baseline data.

Scenario #3: I wish to develop a schedule with conditional branches.  I insert different branches based on potential information that may be developed at a later date.  As the information is received, I activate or deactivate specific branches.  With some macro coding and a rough Monte Carlo analysis, I could probably expand this to do all sorts of probabilistic analysis on the schedule.

Server Level Support

On the server level, you’ll note a couple of things:

1) Setting a task to inactive automatically toggles Publish to “No.”


2) Options to include inactive tasks in the OLAP Cubes.  I am still getting my head around how this would be used, but I suppose it will be heavily dependent on the organization’s methodologies, much like Proposed vs Committed in previous versions of Project Server.



Use Non Certified Play To Devices in Windows 8.1

This is a re-post from here:

Use Non Certified Play To Devices in Windows 8.1


Technical Level: Intermediate Applies to: Windows 8.1, also WindowsRT 8.1 If your device supports DLNA “Play To” using the classic desktop/explorer/libraries functionality but does not appear in the Devices Charm list in Apps like Music and Videos, or appears as non-certified, with a little work you can overcome this restriction and it will appear. The Photos App in Windows 8.1 does NOT support Play To.




A little history: In Windows 7, Microsoft introduced Play To which used the DLNA spec to let me send media from my computer to a DLNA DMR. I had so so results with my 2009 Samsung TV due to poor transcoding support, but great results with my WDTV Live Hub and my SONOS speakers. The so-so experience on my TV and the not wonderful experience on other device by many many people caused Microsoft to rethink their strategy for Windows 8 and come up with a more intensive certification process for devices to “insure” a good experience. This translated into a restrictive policy for Windows 8 Start Screen/Metro/Modern UI Apps where only MS certified devices would appear in an applications Settings: Devices menu. In Windows 8, a workaround is available that requires a registry entry for each device you wish to enable for Play To support for Modern UI Apps.



What I am about to describe works on both my Surface and Surface RT tablets as well as my Desktop running Windows 8.1



 Check if the Device is listed and shows as non certified in PC & Devices Settings/Devices. To do this:

1.     Click or tap the Settings Charm on the Start Screen

2.     Select Change PC Settings

3.     Select PC & Devices

4.     Select Devices

5.     Verify that your device is listed (the example below shows the TV that is Not Windows Certified as present in the list)




6.     If the Device is not present, use Add Device to attempt to add the device to the list



Next Step: Verify Legacy DLNA “Play To” Support


1.  To do this, right click a supported media file in a classic library and verify the Play To menu appears

2.  Next, verify that you can successfully send to your target device and it plays the media you selected.

    a.       To do this, right click a supported media file in a classic library and verify the Play To menu appears and that you can successfully send to your target device and it plays the media you selected.


Open the Registry Editor


1.     On the Start Screen, type/search for regedit

2.     Navigate to HKEY_LOCAL_MACHINE\Software\Microsoft

3.     Create a NEW key by right clicking Microsoft and name it PlayTo






4.      Once the key is created, right click it and create a new DWord




5.      The new Dword should be named ShowNonCertifiedDevices. After you have created the key, right click, edit and change the value from 0 to 1.




After a reboot, your Non Certified devices should be available in Windows Store Apps that support Play (PlayTO), as in the example below:





Note: You alternatively could use HKEY_CURRENT_USER\Software\Microsoft\PlayTo with a DWORD ShowNonCertifiedDevices with value 1 which would limit functionality on a per user basis.


See Also

Originally published (Additional Information Available) at


Here is a registry script to apply this workaround for you

Windows8PlayToFix.reg (266.00 bytes)