Tuesday, June 06, 2006
As many of you are aware, if you attempt to access your Outlook data using some of the Outlook Interop assemblies, you'll be seeing a security dialog informing you that something is attempting to access your emails and whether or not you will allow this. If you're like me, you've run into this before and attempted to circumvent it.

Well, with the advent of Office 2007, we can all breathe a huge sigh of relief. Why, you ask? Because the fine folks at Microsoft heard our collective annoyances about the security model and fixed it! For the long story, check out this MSDN article. Here's the gist of it:
Outlook 2007 introduces an important change in the way that the Outlook object model guard operates. While the behavior of the object model guard has not changed significantly for Outlook add-ins, Outlook 2007 allows external applications to run without object model guard prompts—provided that the computer on which your code is running has functional antivirus software installed and that all antivirus definitions are current."
I've bolded the important part for you. Now, you'll only get the warning if your antivirus software is out of date. You also have the option to either always show the warnings (yeah, right) or completely disable the warnings. Your choice.

Great news!
posted on Tuesday, June 06, 2006 3:54:50 PM (Central Standard Time, UTC-06:00)  #    Comments [0]

I don't have much experience with XPath expressions. This was further illustrated to me recently when I was attempting to use XPath to programmatically parse an MSBuild project file. Yeah... I couldn't find anything. So, when presented with a problem, what do all programmers do? They write a program to solve the problem!

Here's a screenshot of my XPath Helper:

As you can see, I learned how to use XPath to parse MSBuild project files. My problem was not using XML namespaces correctly. XPath Helper attempts to automatically find XML namespaces and then add them to an XmlNamespaceManager (see the ListBox on the right - it lists all namespaces that it found). That way, when an XPath expression is used, it will know to use the XmlNamespaceManager. I'm confident that it won't work in all situations, but it is a nice learning tool to play around with XPath.

If anyone is interested, I can post the code... but if I do, don't count on it having any unit tests or anything. This guy is NOT production quality.

posted on Tuesday, June 06, 2006 11:52:27 AM (Central Standard Time, UTC-06:00)  #    Comments [0]
 Tuesday, May 30, 2006
One of my co-workers was recently chided for emailing a password to access an internal server recently. "Don't email passwords! Email isn't secure!" I don't know if those were the exact words, but you get the point. Don't send around secure data by insecure means, right?

Later, this same co-worker of mine was handed a sticky note with a server name, userid, and password with which to access a different internal server. This note was from the same group who has been preaching on not sending secure data by insecure means like email.

Let that sink in for a second.

I just have a simple question... what makes a sticky note stuck on a monitor any more secure than sending an email? Just curious...
posted on Tuesday, May 30, 2006 3:27:14 PM (Central Standard Time, UTC-06:00)  #    Comments [0]
 Tuesday, May 16, 2006
Marcos, thanks for the heads up on the captcha image not working...

I just tried the comment link myself and it failed. I copied the source for the image it was trying to load and the page I got gave me an error about XML parsing - "no element found". Anyone else having any problems with dasBlog and the captcha image not working?

Am I running an older version? Has there been an update?

I finally got the captcha image up, but it would appear it was more because of my persistence than actually changing anything (aka I kept clicking comments... something about definition of insanity...).
posted on Tuesday, May 16, 2006 11:42:18 AM (Central Standard Time, UTC-06:00)  #    Comments [3]
Anyone checked out CodePlex yet?

Looks like a Microsoft site for sharing open source applications, sort of like SourceForge, except a lot more user friendly! Apparently, it is built on Team Foundation Server, too. I just found the 1.0 release of MSBee (target .NET 1.1 with Visual Studio 2005) on there.

Check it out!
posted on Tuesday, May 16, 2006 6:51:53 AM (Central Standard Time, UTC-06:00)  #    Comments [0]
 Monday, May 15, 2006
If you've ever wondered why the increment and decrement operators weren't included in VB.NET, here's a post explaining why.

Coming from the C/C++ world, I still miss the increment (++) and decrement (--) operators, but I definitely understand why after reading. Basically, it has to do with the fact that assignments in VB are done at the statement level instead of the expression level. If you're not following, consider how you can have things like (if (x = 5) ...) in C, but you can't in VB because the = sign is used for both assignment and equality, depending on the STATEMENT. There isn't any problems in C, because equality is checked with the == sign.

Interesting.
posted on Monday, May 15, 2006 11:54:45 AM (Central Standard Time, UTC-06:00)  #    Comments [1]
 Friday, May 12, 2006

In just over 24 hours, I will be skipping my grad school graduation. For those who didn't know, I've been working on my MBA for the past two years. My employer was willing to pay half the cost of tuition, so I couldn't really turn it down, though I probably would've preferred a more technical degree (I'm a computer nerd).

I didn't really want to wait for hours on end just to hear my name mispronounced. I know Cara didn't want to wait. My parents didn't want to wait - my mom had already told me that she would rather just come visit me than sit in a crowded stadium or gym while thousands of other names were yelled out. Maybe if I had more of an attachment to the U of A (like I did with Harding), it'd be different, but I've been a parttime student. Most of my classes weren't even on campus. I honestly just want to get my degree and have free nights again.

The final reason - I've still got 9 hours to go this summer so I'd rather wait until I'm really done :-)

posted on Friday, May 12, 2006 6:49:07 AM (Central Standard Time, UTC-06:00)  #    Comments [2]
 Thursday, May 11, 2006

Prompted primarily by Karl Sequin's excellent "Understanding and Using Exceptions" post, I was recently attempting to clean up some of the generic exceptions being throw in some code and I was having trouble deciding which exception to use.

I had a BackgroundWorker that could potentially throw an exception (can't everything?) that was doing some remoting to another process. As additional information, the BackgroundWorker exposes any exceptions that might occur in the Error property off of the RunWorkerCompletedEventArgs. I didn't want to just throw e.Error because, as Karl points out, this modifies the call stack making it look my code was the source of the exception. At the same time, I couldn't just use throw, because the exception had basically already been caught and been given to me to handle.

I ended up pulling up the Object Browser in Visual Studio and filtered the list down by searching on "exception" - a nice trick to see all currently accessible exceptions. I ended up using the System.Runtime.Remoting.RemotingException, because it described exactly what I was looking at. Here's the description for it:

Public Class RemotingException

          Inherits System.SystemException

     Member of: System.Runtime.Remoting

Summary:

The exception that is thrown when something has gone wrong during remoting.

If you exclude the "during remoting" part, it basically describes any exception that can be thrown. It's almost funny in a way, because that's exactly the type of thing I was looking for. I was able to set the InnerException to my e.Error which provided me with all the information I needed.

posted on Thursday, May 11, 2006 8:27:20 AM (Central Standard Time, UTC-06:00)  #    Comments [0]
 Wednesday, May 10, 2006
Well, I jumped on the Share Your OPML bandwagon today...

Scott is right, too - one of the most interesting aspects of the website is the Subscriptions Like Mine section.

Is it a surprise to anyone that the subscription most like mine is Colin's? (or is mine most like his???) Also, I have to say, I can't believe that some people out there have almost 3000 feeds they subscribe to (see Most Prolific Subscribers). Can we say information overload?
posted on Wednesday, May 10, 2006 11:54:40 AM (Central Standard Time, UTC-06:00)  #    Comments [0]
 Friday, May 05, 2006
Many thanks to Robert W. Anderson for this solution.

In his post VS2005 PowerShell Prompt, Robert details how to create your PowerShell profile script which will add the VS2005 environment variables to the PowerShell process. Quite nifty.

As a note, after setting this up, you may get a message about how your script isn't signed so it won't run. One solution is to run "Set-ExecutionPolicy RemoteSigned". I wouldn't recommend going farther than that, though. It will allow local scripts to run unsigned and will warn you if a script that was downloaded tries to run. There are still vulnerabilities, so be careful. The other alternative is to sign your script.
posted on Friday, May 05, 2006 8:42:14 AM (Central Standard Time, UTC-06:00)  #    Comments [0]
I just found another nifty shortcut to finding items in Desktop Search. Let's assume you want to find an email with test in the subject in body. If you're like me, you'll find a ton of emails because you get to test a lot of code at work. HOWEVER, what if you know it was in the past couple of days? Try this then:

kind:mail test date:>5/1/2006

That will get all emails with test somewhere in it that came after May 1, 2006. Of course, you can narrow the search more by specifying test in the subject or body or whatever.

See my other tips and tricks here.
posted on Friday, May 05, 2006 7:28:21 AM (Central Standard Time, UTC-06:00)  #    Comments [0]