Wednesday, June 24, 2009
SharePoint and Social Computing
Thursday, June 18, 2009
Slovakian 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
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
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
Thursday, April 02, 2009
C# ResourceManager path
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
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
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
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
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
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
// 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("
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
my mom decided to elf our cats...
Monday, November 03, 2008
CRM Customization Option Gone
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
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
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
- 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
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
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
