Uncategorized
System Center 2012 RC–And the verdict is
0If you didn’t like System Center 2010, you won’t like System Center 2012 – simple as that. It doesn’t look any different, it is still over-complicated and quirky, and still requires more time to configure than it saves (unless you are managing a really huge data center / hundreds and hundreds of clients).
There are better, cheaper, easier to use options out there that integrate about as well. And it’s really too bad.
System Center 2012 RC–Install experience continued
0Yesterday I began the process of evaluation System Center 2012 RC and gave up. Today I decided I was going to try anyway.
As I mentioned before, you need a grand total of 8 machines. I created 8 nearly identical domain joined VMs (in Vmware ESXi of course) – each with 2 CPUs and 4 gigs of ram (thank goodness for Vmware’s memory sharing) and a minimum of 40gigs of disk.
Note: if you attempt to install any of this on an existing server, or an OS instance with stuff on it already it will most certainly fail.
Server Preparation – All Servers
Each server is Windows Server 2008 R2 with all the latest updates, IE9; I installed .NET Framework 3.5.1, and .NET Framework 4.0. I generally disable IPv6.
Even though it is not the most secure thing in the world, you might as well just disable the firewall on all of them as well. The documentation is missing the required firewall settings for the target servers (not disabling said firewalls will cause the Unified Installer to be unable to connect)
Here are the eight lovely virtual machines all running at once. You will need some serious hardware for this to approach usable – our VM server has two quad core 3ghz Xeons and 32-gigs of ram – so it manages…
Google’s privacy policy changes are no big deal
0The internets are in a tizzy – Google recently announced major changes to their privacy policy that allows for the sharing of data between Google owned services. People are claiming this paves the way for the privacy apocalypse. Pretty soon it will start raining targeted ads, as humanity drowns in a giant lake of fire…
Don’t believe me? Here’s some headlines:
Google announces privacy changes across products; users can’t opt out
Google Privacy Policy Update Challenged by Lawmakers
Google privacy policy unleashes criticism from regulators
How to close your Google Account
Not to mention the fear inducing coverage by major media outlets – Fox News and NPR alike.
There are a couple problems with this hype.
- Google has gone to great lengths to be sure people are aware of the changes, and to make them understandable.
Every couple months, Apple surreptitiously updates their terms of service and privacy policies – requires you to agree to the changes, and expect you to sift through pages of legalese to see what changed . Quite often these changes are indeed far reaching, like banning access to competing technologies so Apple can take a totally unneeded 30% cut, or Apple essentially owning your iBooks content. But where is the outrage? It’s Apple. Evil is in their nature.
Instead Google does it right – I personally read about the changes from Google before hearing about it on the news. They have a notice on the search page, a popup in Gmail, in Youtube…
Some examples:
And the page itself is written for human consumption, not lawyers:
- If Google wasn’t sharing your data between services, they were the only ones.
The other day, I was searching for some IT Helpdesk software. One of the products I looked at was HEAT. Ever since then, I have been seeing ads for Heat HelpDesk almost everywhere I go on the web. The other day I was looking for deals at Disney World, and wouldn’t you know it, I start seeing ads to that effect… everywhere I go. Yeah it’s creepy. What’s even creepier is that I don’t know who has this information or where they got it, and I sure don’t know anything about their privacy policy. Which leads to 3 - Google Dashboard lets you take control of the data stored about you
Google dashboard is a single destination to review your information from all Google services. The Web History is a big one – perhaps the biggest. Surprise surprise, Google keeps a record of everything you search for while logged in, and sometimes even site visits. If you searched for something you would rather there be no record of (that rash on your leg, for example), you can delete individual entries, or you can clean it out altogether. You can also turn it off.
- Integration requires data sharing
In order for Google to improve the integration between services – such as enabling unified messaging between Google Voice and Gmail – they must freely share data between the two services. Obviously a major motivation for such sharing would be targeting advertisements, but as I mentioned in #2 that has become the standard everywhere else.
Google has been doing things lately that I would argue border on evil (contrary to the “Don’t be evil” motto) – closing services that aren’t a huge success but that people still rely on, not releasing Android source code as promised, muscling out competing social networks in search results…
This policy change is not evil, it nothing to be “outraged” about, and they are doing it right. The sky is not falling; the world is not coming to an end.
Windows Live Writer
0Windows Live Writer is an oft-overlooked component of the Windows Live Essentials application bundle (also including such gems as Live Photo Gallery, Live Movie Maker, and Live Mesh). If you have a blog (in my case running on WordPress), I highly recommend it for one really important reason: it makes adding images to posts 100% easier.
Think of it like a trimmed down version of Microsoft Word (more like Wordpad really) that can be used to compose blog posts. You can format text according to styles, add hyperlinks effortlessly, perform spell checking – but most importantly – paste images right into your post. Like this one:
You can the resize, crop, etc.
The contents of the Insert tab alone are worth your time:
I could be the only person left who primarily posted using the HTML editor, but if there are any other curmudgeons out there who have been skipping the visual aids because of all the extra steps… well give Windows Live Writer a try!
Microsoft hacks away at TechNet membership benefits (again)
1TechNet Professional (formerly TechNet Plus) subscriptions are one of the best ideas to come from Redmond – allow IT Pros to pay a subscription, and evaluate pretty much all Microsoft software without time limits and expirations. Why is this such a good idea? Because Microsoft gets a significant portion of its revenue from business licensing, and making evaluation as easy as possible can only encourage adoption of new versions.
Last year, Microsoft silently dropped the number of licenses per application from 10 down to 5, arguing that for evaluation, there was no need for so many licenses. Perhaps, perhaps not. I create new VMs to evaluate software fairly regularly, and having 10 keys makes it much less likely to encounter activation issues.
But ok, we only get 5 – so we adjust.
Well, for some reason Microsoft has decided that they want to scale things back further – as seen on the subscription home page,
Beginning on January 26, 2012, individual subscribers to TechNet Professional Subscriptions may access a maximum allocation of 3 product keys for Microsoft Office and Windows Client products in connection with their subscription. The allotted keys may only be used for software evaluation purposes. Once the maximum keys have been activated no more keys will be made available. Additional product keys may be acquired through the purchase of an additional subscription.
Unfortunately, I just saw this today, so I’m doing like any reasonable person would and requesting all 5 keys for any Office or Windows related products before they drop it down again – until I hit the daily key request limit…
First of all, making software evaluation more difficult is only going to hurt Microsoft. But then again, Windows 8 doesn’t appear to be geared toward business AT ALL, so maybe it is indicative of a shift in strategy.
(It is odd that Windows 8 preview still isn’t on TechNet, nor is the System Center 2012 RC…)
If only TechNet members had the time to protest…
DIRECTV2PC activation key usage limit error
0I have been trying to install DIRECTV2PC for a week or so (off and on of course) and I get the error “Activation Failed” with a reason of “activation key usage limit reached”
For some reason, nobody had a solution – on satelliteguys.us or dbstalk.com (or directv forums, or the internet as a whole).
I had already requested two keys, and I had only used them once – it seems ridiculous to me that I cannot use the key again if I, say, reinstall Windows (which I tend to a couple times a year)…
I found a workaround – use a different email address to request a new key. (Many email providers allow you to insert arbitrary periods in your email address…)
DIRECTV2PC is made by cyberlink for Directv. Nobody seems to know why it requires a product key – probably some accounting thing. Rumor has it that it may be going away soon anyway.
Good luck!
Definitive complete list of Office Ribbon Callback Signatures for 2007 and 2010
1Microsoft’s documentation for programming the Office Ribbon is pretty sparse at best. There are two pages you can get Callback signatures:
1. Customizing the 2007 Office Fluent Ribbon for Developers (Part 3 of 3)
2. Introduction to the Office 2010 Backstage View for Developers
Notice that neither of these documents sound like where you would expect callback signatures “part 3 of 3″, and “introduction to the…” Also, the backstage introduction article contains rehashes of most of the office 2007 callbacks in a painfully verbose fashion.
I am here to help.
How about an excel spreadsheet containing the callbacks, associated control, source (2007 vs 2010) and the signatures in 4 different languages? Did I mention the data is already in a table and sorted by callback name?
Here you go:
Full Office Ribbon Callback List Update: I have uploaded this file to a public SkyDrive so it can be viewed online, since I have needed to make some changes:
Office Ribbon Callbacks
This document is not a control -> callback mapping. The typical use case is:
I am building Office customizations using xml.
I need to implement X callback, but do not know the signature.
I look up the callback by name, then make sure it is the correct one for my control.
Also, I didn’t quite finish reconciling some discrepencies between the 2010 and 2007 documentation – for example, in 2007 the getImage is supposed to return an IPictureDisp – which is a real pain in the butt. My experience showed that returning a bitmap worked anyway, and now the 2010 documentation says getImage returns System.Drawing.Bitmap. I have switched to using Bitmap because it is so much cleaner, but I figured I should leave them both in there.
I am open to suggestions – just trying to fill what I consider a documentation gap.
Pre Populate SharePoint Document Properties in a Word Document
0The integration between SharePoint and Microsoft office contiunes to improve with every successive release, but as of Office 2010 and SharePoint 2010, there is still a bit of feature gap when it comes to automation.
When a document originates from within SharePoint it is not too bad – you have to do a little CustomXMLPart trickery to set the properties. But what if your file is a SharePoint virgin?
The adding a document to sharepoint adds at least 3 additional Custom Xml Parts to the Word Document – one of them big, complex and guid-filled. To generate these parts would be a bit of a nightmare.
Turns out, you don’t need all of the xml to pre-populate fields. Nor do you need any guids. Here is all the XML you need:
<?xml version="1.0"?>
<p:properties xmlns:p="http://schemas.microsoft.com/office/2006/metadata/properties" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:pc="http://schemas.microsoft.com/office/infopath/2007/PartnerControls">
<documentManagement>
<SharePoint_x0020_ColumnName>Text Value</SharePoint_x0020_ColumnName>
</documentManagement>
</p:properties>
I will leave it to you to figure out the column names (hint – spaces become “_x0020_”).
Store that xml bit in a string (say, xmlString), and call Document.CustomXMLParts.Add(xmlString);
Now, when the document is saved to sharepoint, the fields will be pre-populated, all the appropriate xsd and guids updated, and the user gets no errors about missing required fields!
Behaviour of Application.MailMergeAfterRecordMerge Event
0The signature for the Application.MailMergeAfterRecordMerge event looks like this:
void Application_MailMergeAfterRecordMerge(Word.Document Doc)
{
}
While I would have expected the Document referenced in the Doc parameter to be the newly created merged document, it is actually a reference to the document from which the merge occurred. In other words, it’s not really all that useful.
Automate Word Mailmerge Preview Results
0(Long story short: the property you need is ViewMailMergeFieldCodes. Set it to 0 to enable preview; -1 to disable preview)
The mail merge process in Microsoft Word is a bit of a bear to automate sometimes. I suppose I should be thankful that it can be automated at all, but there are bits of it that are very poorly documented, requring a bit of trial and error to work with. It doesn’t help that most Office interop documentation leans toward Visual Basic…
Anyway, today’s issue was attempting to programmatically Preview the results of a Mail Merge in a C# VSTO project, like the button in the ribbon:

Big surprise: Document.MailMerge doesn’t contain any properties or methods with the word “preview”
Turns out there is a property called ViewMailMergeFieldCodes that does what we need, but in reverse. Microsoft’s documentation states:
This property returns True if merge field names are displayed in a mail merge main document, and False if information from the current data record is displayed
Trouble is, the field is an int, not a bool! A little debugging to the rescue:
When this field is set to -1, Preview is disabled, and the field codes are displayed.
When set to 0, Preview is enabled, and the record data is displayed.
To switch the displayed record, change Document.MailMerge.DataSource.ActiveRecord.
Now if only there was an event that fired when the record changed…
