Wednesday, June 24, 2009

SharePoint and Social Computing

Yesterday, I was thinking about social computing and how many new apps seem to pop up each week. Today, an article happened to come out that focuses on this same thing: Is SharePoint Set To Become The De Facto Enterprise Social Media Platform--it continues along the vein of previous articles such as Will Microsoft Become Facebook for the Enterprise?

One question raised by the article is whether Microsoft's release schedule precludes SharePoint from being in touch with the current state of social computing. People who argue that this is true will be quick to point out that it has been 2.5 years since the last release and SharePoint 2010 isn't out in Beta yet. Also, while the article contends that "Enterprises don't just jump on the latest social media fade [sic],"... people do. So even if there is no corporate policy about Twitter or Facebook, people will be using them and most likely they'll be using them for business purposes (e.g., product evangelism, business networking, etc.).

However, what the article doesn't seem to ask is: what's the difference between the release dilemma that SharePoint faces and the same considerations for Microsoft Office? If a feature is considered for implementation during a two-year release cycle for Office, that feature had better be compelling enough that it's going to be relevant for longer than the next release cycle. This is no different for social computing functionality that the SharePoint Program Managers have to consider for one of their releases.

In the end, it isn't about how fast SharePoint can add the latest and greatest functionality, it's about how well they'll address the long-term needs of the enterprise. At Metalogix, we migrate customers to SharePoint, so we're well aware of how long it takes some companies to move to the latest platforms--they're not on a 2.5 year release schedule, they go at their own pace.

Thursday, June 18, 2009

Slovakian sponge toffee

I'm in Bratislava watching a piece of German speaking sponge toffee.

He’s on the KIKA TV channel and he’s trapped in the KIKA lounge. Apparently, he’s not too happy about it.



OK, he's actually a loaf of bread named Bernd and the show is called Bernd das Brot. The show seems to play after the station has gone off the air--way better than a test pattern.

Tuesday, May 19, 2009

TechEd 2009

last week I was in LA for the Microsoft TechEd 2009 conference. Metalogix had a booth and we were, as always, making the world safer for SharePoint migration, SharePoint selective restore, SharePoint archiving and now Exchange archiving and file archiving as well.

many people have commented/blogged about the reduced attendance this year. however, with the move back to a one week format, I felt as though I had as many meaningful conversations about our software as I would expect at TechEd, so I wasn't disappointed.

the most disappointing aspect of the show was that Brooks Brothers shirts go for 3/$200 in LA, whereas in Orlando, you can get a deal closer to 3/$100. :)


- LA convention centre. love those palms.




- the expo hall floor


- the Metalogix booth where all things SharePoint are discussed.

Tuesday, April 14, 2009

Google car in Halifax

I looked out the window today and just happened to see the controversial Google maps "street view" car coming down the road in front of the Metalogix office.

the car records 360 degree images that allow Google map and Google Earth users to virtually drive around and see what things look like from street level instead of from space. the practice has some privacy advocates up in arms because people who happen to be in the camera's lens will be photographed without their permission, and possible without their knowledge.

personally, I don't think taking images like this in public is a problem. but, unfortunately, I was nine stories up, so I had no chance of getting in the shot.

Wednesday, April 08, 2009

Dalhouise Auto Polo

Dal published this parody in their April fools student paper.


- click for full-size version

Thursday, April 02, 2009

C# ResourceManager path

this is something that would have been nice for them to include on the MSDN page about the ResourceManager class in C#. a ResourceManager is used for localization b/c it allows you to read the right language string from .resx files that you've added to your application.

you may find that you get this error message when trying to read a string out of a resource file:

“Could not find any resources appropriate for the specified culture or the neutral culture. Make sure \"AppName.FileName.resources\" was correctly embedded or linked into assembly \"AppName\" at compile time, or that all the satellite assemblies required are loadable and fully signed.”

the trick here is that you must include the VS project folder in the path when you instantiate the ResourceManager object. So if my assembly is "AppName" and my resource file called "FileName.resx" is under a folder called "FolderName," then the syntax looks like this:

// Declare a Resource Manager for localized string resources
private ResourceManager resManager = new ResourceManager("AppName.FolderName.FileName", System.Reflection.Assembly.GetExecutingAssembly());

note that you shouldn't include the file extension for the resource file.

Tuesday, March 31, 2009

SharePoint Connections 2009

SharePoint Connections 2009 was in Orlando Florida at the Grande Lakes JW Marriott. despite numerous news reports which suggested otherwise, I was not attacked or even slightly eaten by rampaging Burmese pythons.

the SharePoint connections show is a subset of dev connections. also included in the same show is Visual Studio connections, ASP.NET connections and SQL Server connections. not surprisingly, the 500-600 attendee count was smaller than previous years. it will be interesting to see how the current economic kerfuffle is going to affect the attendance at shows such as Microsoft TechEd and the Microsoft SharePoint Conference. (note: my list of 2009 SharePoint conferences.)

I managed to get myself pretty ill, and I was only in town for two nights, so I was shockingly lacking in any social time and I don't have any interesting photos to share. however, on the plus side, we did have quite a few people come by the Metalogix booth to talk about selective restore for SharePoint--as well as our migration, upgrade and archiving products for SharePoint.

Friday, March 06, 2009

SharePoint online password issue

since Metalogix is a Microsoft Gold certified ISV partner, and we have a number of SharePoint products (e.g., SharePoint migration solutions and Selective Restore for SharePoint backups), we were invited to join the TAP for the hosted version of SharePoint, SharePoint Online. we were also a launch partner since our SharePoint Site Migration Manager software allows customers to copy/migrate SharePoint sites, lists, items, etc. to or from SharePoint online. SharePoint Online is also referred to as MOS, since it's part of the Microsoft Online Services offering.

anyway, we found that our users were having issues with their MOS passwords. I tried using the admin interface to reset the passwords, but it didn't seem to help. I haven't figured out what causes the original issue, but I do have some insight into why the reset isn't working.

if you try and reset a password twice through the regular user interface, you will see an error message saying that passwords can only be reset once a day. in the admin interface, there is no such error--it will just let you go through the process, but it simply won't work.

the workaround to this problem is to use the admin interface to disable the account and then re-activate it. doing this will reset the account and you'll be able to successfully reset the password.

Thursday, February 05, 2009

SharePoint Conference Season Dates 2009

I thought I’d put this together just to see when (and where) everything is happening this year. I'm not sure what I’ll be going to, but it’s good to know the dates.

SharePoint Connections -- March 22-25 -- Orlando
SharePoint Summit -- April 6-8 -- Montreal
Microsoft TechEd -- May 11-15 -- LA
Microsoft Worldwide Partner Conference -- July 13–16 -- New Orleans
Microsoft SharePoint Conference -- October 19-22 -- Las Vegas
Microsoft TechDays in Halifax -- November 2-3 -- Halifax, Canada
TechEd Europe 2009 -- November 9-13 -- Berlin
SharePoint Connections -- November 9-12 -- Las Vegas
Microsoft PDC -- November 17-20 -- LA

Metalogix usually has a booth at most of these. This year, we'll have the added honour of showcasing our new Selective Restore Manager for SharePoint Backups.

Monday, January 05, 2009

compacting VPC free space

when one of my XP Virtual PC (VPC) images reached 17GB, I knew it was time to compress it. however, the main reason the virtual hard drive got so large was due to space that was now empty. to get the VPC to compress back down to just the space it was using, I found that I needed to follow the steps from a blog tip. after this process, my VPC went down to 7GB.

note: you'll need substantial free space on your host machine to complete this process. my 17GB hard drive needed 22GB of free space. the process also takes a long time--at least 2-3 hours in my case.

1) Inside the VM, run the special disk defragmenter that works on empty space
2) Inside the VM, run Virtual Disk Precompactor or other disk utility program to "zero out" deleted data (this comes as an ISO in the VPC additions folder)
3) Shutdown the VM, run "Virtual Disk Wizard" from the VPC console to compact the VHD.

here are the details:
instead of using the defragmenter comes with Windows, you should use the defrag tool created by Dave Whitney.

install the defrag tool:
- log in as a machine administrator (this is necessary to install the service).
- copy bootdfrg.exe to your windows\system32 directory.
- from a command prompt, navigate to the dir where you have the new derag tool and type: defrag -i
you should get back: "The Disk Defragmenter service was successfully installed."The service is now installed.
to uninstall, type: net stop defragsvc & defrag -u

run the defrag:
to run the tool on the C: drive type: defrag -d c

from MS support on the Virtual Disk Precompactor:
"Capture the .iso from (C:\Program Files\Microsoft Virtual PC\Virtual Machine Additions\Virtual Disk Precompactor.iso). If your virtual machine is running when you capture Virtual Disk Precompactor.iso, Virtual Disk Precompactor starts automatically. If you click Yes when prompted, Virtual Disk Precompactor precompacts all virtual hard disks for this virtual machine. If Virtual Disk Precompactor does not start automatically, you can start it by navigating to the CD drive of the guest operating system and double-clicking Precompact.exe.

Alternatively, you can also run Virtual Disk Precompactor from the command line by navigating to the CD drive of the guest operating system and typing Precompact. The available parameters are:-Help - Displays help for the precompactor.-Silent - Runs the precompactor in unattended mode.-SetDisks - Specifies the disks to be precompacted. If this parameter isn't specified, then all virtual hard disks for this virtual machine are compacted. For example, the following command will precompact your C, D, and E drives in unattended mode: Precompact -Silent -SetDisks:CDE"

Virtual Disk Wizard:
the virtual disk wizard is an option in the VPC console. remember to shut down your VPC and then run this option. you should select "Compact existing virtual hard drive."

Sunday, December 28, 2008

kitten proof your Wii

I have previously written about the adventures of living with Luddite kittens. this Christmas presented a special challenge (pardon the pun). under the tree arrived a Wii for my wife and me. we opened the box and then shared a look of horror--the Wii comes with an LED sensor bar that's powered by a thin cable. we knew instantly that this cable would not last a day in the same household as our cats.

we have tried the usual precautions, but none have worked for our tag-team of furry felines. for example, duct tape with the sticky side out keeps Rory away, but Asha likes chewing on sticky things, so her gnawing exposes the wires for Rory. it's hard to believe that such adorable creatures could cause any trouble at all...


- Asha (the oldest)


- Rory (the baby of the family and the proud owner of razor sharp teeth)

and, of course, we got caught up in a rousing game of Wii tennis and took our eye off Rory for the few seconds she needed to make mince of the cable. after splicing it back together, I knew that it was time for some more precautions. we went to the hardware store and bought a healthy supply of Split Flex Tubing (about $12 for 20'). it's simply a flexible tube that we are putting around any cable that seems fine enough for Rory's taste--fortunately, she stays away from thicker cables.

in addition to the Wii's sensor cable (which we'll only use until we can get a wireless one), we've put the tubing around the thin part of the Wii power cable, the power cable for the Xbox 360 add-on fan, and the small cable that comes with the Xbox 360 wireless network adapter--the router has long since been moved into a cat-free room.


- the Wii power cable protected from harm


- the Xbox 360 wireless network cable with a protective cocoon

so far, I'm very happy with the tubing. I think it might save me from some ill will towards our pets. on that note, I'm currently reading Marley and Me, which I'm also hoping will put our cats in a positive light.

XML indentation not working

I'm using an XML file to store a configuration file for the Metalogix Batch Migration Utility. during a recent bug bash, I noticed that the config files were not being properly indented despite the fact that I was setting System.Xml.Formatting.Indented in my code.

// Create an XML writerSystem.Text.StringBuilder stringBuilder = new System.Text.StringBuilder(1000);
System.IO.StringWriter stringWriter = new StringWriter(stringBuilder);
System.Xml.XmlTextWriter xmlWriter = new XmlTextWriter(stringWriter);
xmlWriter.Formatting = System.Xml.Formatting.Indented;
xmlWriter.Indentation = 5; //optionally adjust the indentation
// Write out configuration settings
xmlWriter.WriteStartElement("Configuration");
xmlWriter.WriteRaw("" + txtDBFile.Text + "");

it turned out that the issue was simply that I was using xmlWriter.WriteRaw instead of xmlWriter.WriteElementString. the latter will respect System.Xml.Formatting.Indented and is cleaner code anyway.

to crush this bug, all I had to do was replace the last line (and other similar lines) with this:
xmlWriter.WriteElementString("DBFile", txtDBFile.Text);

Wednesday, December 10, 2008

.NET ComboBox shows data type

I've been using a data bound ComboBox in one of my apps, and I discovered that under certain conditions, the ComboBox would display "System.Data.DataRowView" instead of my values. in other words, it was showing the data type instead of my content.

in this case, I'm binding an XML file to a DataSet and then showing the content in a ComboBox (C#). the issue occurred when I had more than one child element in the XML.

this is my original (non-working) code (xmlQueries is a DataSet object):

xmlQueries.ReadXml(filePath);
comboBoxXpath.ValueMember = "XpathQuery";
comboBoxXpath.DisplayMember = "XpathQuery";
// Note: set the datasource after the properties
comboBoxXpath.DataSource = xmlQueries.Tables[0];

thankfully, the Visual Studio debugger showed me the light, it turned out that the DataSet column name was changing (to "XpathQuery_Text") when I had more that one value in my XML. the solution was to read the column name dynamically:

xmlQueries.ReadXml(filePath);
// Read column name dynamically
comboBoxXpath.ValueMember = xmlQueries.Tables[0].Columns[0].ToString();
comboBoxXpath.DisplayMember = xmlQueries.Tables[0].Columns[0].ToString();
// Note: set the datasource after the properties
comboBoxXpath.DataSource = xmlQueries.Tables[0];

Saturday, November 29, 2008

ElfYourself.com is back

for all you Elf Yourself fans, the site is back up. you can makes stills or animations with any faces you choose to upload.

my mom decided to elf our cats...

Monday, November 03, 2008

CRM Customization Option Gone

This is a frustrating issue and I haven't seen it discussed anywhere else, so I'll add this to the ether.

If you are using Microsoft Dynamics CRM 4 and the Outlook plug-in for CRM4, you may find that the "Customization" option in CRM will dissapear for no apparent reason. BTW --It can also affect other CRM options.

The problem seems to be a conflict between CRM and the Outlook plug-in, so if you launch CRM first, you will see the option, if you launch Outlook first, you will not. However, having said that, eventually the option will probably dissapear even if you start both apps in the right order.

Update: one of my colleagues has told me that using the fully qualified name of the CRM server will also help with this issue. so instead of http://machinename you would use http://machinename.domain to open CRM. I haven't tested this yet.

Wednesday, October 29, 2008

Barcelona TechEd EMEA 2008

I'm here in Barcelona for TechEd EMEA. I'll be helping with the Metalogix booth and looking forward to talking to customers and partners about a big announcement.

but first a bit of a look around the city and nearby attractions.


- the Barcelona Aquarium's shark tunnel



- the Montserrat monastery from the upper funicular station

Tuesday, September 30, 2008

Remove RSS feeds from Outlook

I ran into an issue where I was getting an error on send/receive: RSS feeds error "Object cannot be found." The offending feed had been removed from Outlook, but was somehow causing an issue.

To resolve these problems, you can backup your feeds, remove all of them, and then only add back what you want.

First back up your feeds. If you don’t want any of them, you don’t need to do this. To backup feeds, open Outlook and go to File > Import/Export > Export RSS Feeds to an OPML file.

Next, remove all feeds from Outlook and IE. Note that you've only backed up the Outlook feeds, so you'll have to make a note of the IE ones you want to get back (e.g., the URL to the feed).

1. To remove feeds from Outlook, go to Tools > Account Settings > RSS Feeds.
2. To remove feeds from IE (Tools > Toolbars > Favorites. then switch to the “Feeds” tab and remove the feeds you don’t want.
3. You may want to delete the folders that contain RSS posts that were already downloaded by Outlook, to do this, find the “RSS Feeds” folder in Outlook and delete the sub-folders you don’t want.

Once you have done this, you can add your feeds back by opening the OutlookRSSFeeds.opml file and taking out the ones you don’t need. Be sure you create a copy of your OPML backup files in case you make an error.

Sample Exported Feeds File:

<?xml version="1.0"?><opml version="1.0"> <head> <title>OPML exported from Outlook</title> <dateCreated>Wed, 1 Oct 2008 11:41:17 -0300</dateCreated> <dateModified>Wed, 1 Oct 2008 11:41:17 -0300</dateModified> </head> <body> <outline text="Metalogix Blog" type="rss" xmlUrl="http://blog.metalogix.net/?feed=rss2"/> <outline text="MSNBC.com: Top msnbc.com headlines" type="rss" xmlUrl="http://go.microsoft.com/fwlink/?LinkId=44406"/> </body></opml>

I only want the Metalogix feed, so I removed the other one (which was causing the error) and import teh file back into Outlook (File > Import/Export). This is what my altered OPML file looked like:

<?xml version="1.0"?><opml version="1.0"> <head> <title>OPML exported from Outlook</title> <dateCreated>Wed, 1 Oct 2008 11:41:17 -0300</dateCreated> <dateModified>Wed, 1 Oct 2008 11:41:17 -0300</dateModified> </head> <body> <outline text="Metalogix Blog" type="rss" xmlUrl="http://blog.metalogix.net/?feed=rss2"/> </body></opml>

Saturday, August 23, 2008

Augmented Reality in the Olympics

good to see that more great uses of Augmented Reality are being discovered. in the shot below, you can see Michael Phelps and company racing well ahead of the green AR world record line. football fans see this sort of technology every game, but now you can see it in swimming, javelin, and probably some other events that I haven't been fortunate enough to watch.


- click to view full size

as the US team turns, another AR element is added to show that they are leading. this one is a banner positioned and layered to appear as though it is floating on the water.


- click to view full size

Tuesday, July 22, 2008

XNA second edition

I'm happy to say that my next book project will be a second edition of the XNA Game Studio Creators Guide (McGraw-Hill) that I co-wrote with Pat McGee.

XNA has undergone some significant changes since our book came out, so we're working to update and improve the text. along those lines, we are lucky to have Nick Gravelyn (XNA MVP) doing the technical review.

if you have any suggestions, feel free to contact Pat or me.


- new second edition cover


- cover of the first edition

Friday, June 13, 2008

C# ListView empty after add

this was driving me mad, so I just have to write a post in the hope that someone will find it and not have to go through the head scratching I've experienced tonight.

I've been working on a utility for managing Metalogix batch files. these files store migration and copy operations from one SharePoint server to another.

as part of this app, I'm using a .NET ListView control to show the files. the control worked fine the first time I loaded data, but after it had been cleared once, it wouldn't work again. the ListView control showed nothing--no data, no columns, nothing...

it was actually the lack of columns that led me to the solution. it turns out that I had been a bit sloppy and used: ListView.Clear(); instead of ListView.Items.Clear();.

the ListView.Clear() method clears everything from the control--including the columns that I had created to hold my data. this isn't what I wanted. I meant to clear the items in the control. after doing this, I messed up the columns so that even though I was adding items with
ListView.Items.Add(ListItem), the control wouldn't show anything.

some tell-tale signs of this issue were that the ListView.Items.Count was not zero, but the control didn't display anything.

to help people find this, I'm going to add some text below.

ListView empty
ListView shows nothing
ListView displays nothing
ListView problem
ListView.Items.Add problem
ListView has no columns
ListView.Clear() removes columns