Monday, August 08, 2005

This coming Wednesday I have the opportunity to provide a talk and presentation at the local, Salt Lake City Microsoft offices on the new CLR enhancements in the .NET 2.0 Framework.  Of the enhancements that are most popular, we most often hear about Generics, Anonymous Methods, Win Forms enhancements, ASP.NET enhancements, etc.  Well, this talk is going to be more focused on some of the enhancements made to the BCL library and the underlying framework, more so than the higher-level topics.

The presentation starts at 9:30 AM and runs until 12:00 PM.  It should be a blast!  I look forward to seeing everyone there!

Monday, August 08, 2005 9:37:00 AM (Mountain Standard Time, UTC-07:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Friday, August 05, 2005

All I can say is 'FINALLY!'  This week has been extremely frustrating.  My ISP has been down all week.  I can't put into words how loooong the week has been.  No email, no contact, no web...I hadn't really stopped to reflect on how dependent on the internet I've (we've) become...but I had plenty of time to stop to think about it.  What was most frustrating was the loss of email.  Because I host my email at home, if the power goes out, or (as in this case) my ISP, I don't get email.  I'm now very seriously considering hosting my email elsewhere.  I had thought about it in the past, but it's really hitting home now.

I apologize to anyone that may have received a bounced email or who may have been wondering about the disappearance from MSN Messenger, blogging, etc....  I've been on the phone 5+ times a day trying to get the issues resolved.

[fingers crossed] I should be back up and running.

Friday, August 05, 2005 4:29:00 PM (Mountain Standard Time, UTC-07:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Monday, August 01, 2005

As I mentioned the other night, I ran into a slight hiccup in my system configuration revolving around multiple SCM systems/providers on my system and switching between them.  Frequently (in fact, multiple times daily) I need to toggle back and forth between SCC providers (VSS and Vault).  Vault has a nice option to make Vault the default SCC provider.  This works well, especially for a system on which two SCC providers are installed.  In the unlikely event that 3+ are installed, it would get a bit cumbersome.

That said, I very much dislike having to load Vault simply to make that checkbox selection only to close it down immediately.  When I'm working remotely, I have to wait even longer as Vault must synchronize the source trees before the menu options become available which is a pain as well.

Well, to alleviate this pain, I took the liberty to throw together a small utility that enumerates the SCC providers on the system and provides a simple means to change it on the fly.  I call the utility the 'SCM Switcher' and it's available for download exclusively here.  It was written in VS 2005 Beta 2 and therefore requires the .NET Framework 2.0.  I could have easily written it in 1.1, but I'm getting pretty pumped about 2.0 and wanted to start down the path of implementing 2.0 for reals rather than in an experimental mode.  The full source and a Release build are included for your enjoyment. (Ok, ok, for those that would rather have a .NET Framework 1.1 version, you can find it here)

NOTE: I've only tested the application on Windows XP Pro SP2, though I expect it to work across the board.  The utility does modify the system registry (even less than Vault) by simply altering a single value.  By way of disclaimers: use at your own risk, though I can't really envision anything possibly going wrong.

Let me know what you think!

Monday, August 01, 2005 5:32:00 PM (Mountain Standard Time, UTC-07:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Sunday, July 31, 2005

Well, after my interesting COM+ Registry fiasco (and subsequent machine resetting), I'm pretty much back up to a running state.  I'm sure there are little things and setting here and there that I may have missed.  However, I did run into a particular 'Running as a Non-Administrator User' gotcha that I didn't experience previously.  The reason I didn't have this issue previously was because the last time I switched to running as a non-administrator, I was already well down the road of using my computer and many settings were already set.  This time, on the other hand, one of the first things I did was add myself as a regular user (relying on the MakeMeAdmin techniques for administrative promotion), so certain security setting weren't already assumed.

I use VSS (Visual SourceSafe) as my source code control system for individual and team-based projects.  In some cases I use SourceGear's Vault product.  I love both systems but must switch between them as I switch between work on various projects.  As a major convenience, Vault provides the ability to set Vault as the default via their 'Make Vault your default SCC Provider' option.  This is nice when you have the two source code control systems (such as VSS and Vault), though it might get more complicated with 3+ SCC systems (though there are utilities for this).

Well, since I'm not an admin I don't have the right to change the default provider.  This manifested in 1) Vault not showing the correct data and 2) Vault not being able to change the data (NOTE: it would work if I was temporarily promoted to admin).

As it turns out, you simply have to grant the appropriate permissions in the system registry to the following key:

HKLM\SOFTWARE\SourceCodeControlProvider

It's as easy as that.  Now, I wish the installers would set that permissions appropriately, rather than assume that I will have the permissions (e.g. running as admin).

Sunday, July 31, 2005 1:44:00 PM (Mountain Standard Time, UTC-07:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Thursday, July 28, 2005

I don't know what my deal is, but if something can go wrong it invariably does.  I've griped about hard drive woes in the past (probably to everyone's dismay).  This week, however, the stars have been misaligned again.

First of all, my domain controller (why is it always the domain controller?) experienced a slew of bad sectors on the hard drive which necessitated a repair of Windows.  I knew something was wrong when I couldn't do a backup on System State for several weeks, but due to several circumstances I had to just let it ride for a while.  Well, finally it died (blue screened) when I tried to access it with Remote Desktop.  After a bit of sweat and frustration I ran a CHKDSK to find and repair the errors (there were several  bad sectors and CRC errors) and then repaired Windows.  Fortunately, I did not need to reinstall or resetup the domain - that would have been a third time in just under a year.

Secondly, while working on my dev machine, somehow my COM+ Registry became corrupt.  The application I was working on makes heavy use of COM+ so I was registering and unregistering my comoponent frequently to test things, but I've been doing that automated and successfully for a few years now with the same components, but it just decided to get corrupted.  Now, Explorer hangs when I try to browse the disks on the system.  I followed the instructions on the Microsoft support site to repair a damaged COM+ installation.  However, when it goes through the process of reinstalling COM+, I get error code 0x80040206, An unexpected internal error was detected.  The COM+ event classes could not be registered.  As you might well be aware, Windows makes heavy use of COM+ for its day to day operations, so this now leaves me in a state of not being able to use my system effectively.  Applications hang periodically and for extended periods.

While I was planning on reimaging my system, today was not the day to have to do it.  I have so much stuff to back off the laptop now and put back together I'm nervous I'm going to miss something.  Fortunately I only have one deliverable this week - but it's a big one.

What am I doing wrong?  I whole-heartedly believe that I live in a strange vortex of bad luck.  Maybe the electricity in my house is wired wrong (actually it was, I fixed that)?  Maybe I'm such a power user that I overload the circuitry on machines on the network?  I shouldn't have bought that printer the other day - I know it's gonna fail on me in a week.

Thursday, July 28, 2005 1:38:00 AM (Mountain Standard Time, UTC-07:00)  #    Disclaimer  |  Comments [3]  |  Trackback
 Tuesday, July 26, 2005

I always supposed that we lived in a retro-era.  With the advent of the new VS 2005 and SQL Server just around the corner, it's time to escape yesterworld, and move into the world of tomorrow.

I got a good laugh from these videos.

Tuesday, July 26, 2005 4:31:00 PM (Mountain Standard Time, UTC-07:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Friday, July 22, 2005

Today I caved and made a few big purchases.  First, after all my printer woes around here (none of my three printers work at all), I bought a new Brother HL-5170DN for $300 from Staples.com.  It should be delivered on Monday - I'm so excited.  It has built-in duplexing (two-sided printing), great print resolution, network ready (ethernet), etc.  I hadn't found the duplexing and network support in the same printer for under $600 until yesterday when I found this one.  All the reviews I've read indicate that it's a great printer too, so that's not discouraging.

I also purchased a dual-layer DVD burner.  I haven't yet had a chance to give it a whirl, but I'm very much looking forward to using it - especially for backups!

Let's just hope this equipment doesn't, as have their predecessors, fail on me within the first several months.

Friday, July 22, 2005 4:40:00 PM (Mountain Standard Time, UTC-07:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Sunday, July 17, 2005

I've had the privilege this past week of returning to one of my great passions: instruction.  Immediately upon my return from Minneapolis this past Monday, I had the opportunity to begin teaching a custom course on Advanced C# (which concludes on Monday, July 18, 2005)

My students have been fantastic and a pleasure to be with.  I must admit that I was hesitant and tentative upon learning about my class at first.  Teaching MOC is no picnic, but when you have 1) 15 already fantastic programmers in your class 2) a custom course comprised of chapters from 4 distinct and unrelated courses and 3) very little time to prepare it gets a little daunting.  My students (from Symantec Corp in Lindon, Utah) have been software developers for many years (focusing mostly on C++ and Java), many of them with a few years of C# programming under their belts already so their questions tend to run a little deeper than what might be expected of a newcomer to the language.  Keeping them all happy is daunting and difficult.

In addition to the prescribed array of material to be covered (which is not conducive to any sort of flow), my students have requested that we spend Monday covering some topics that are important to them: Reflection, Custom Attributes, Windows Services, WinForms controls.  I have spent my free time this weekend preparing my own presentations for them along with demos and what not.  I hope that goes over well and is well received.  We've already covered a vast array of topics; from Collections and Enumerators, to P/Invoke and COM interop, to Threading, to Exceptions, to Remoting and Web Services.

I pray that I have been helpful and insightful in answering their varied questions.  All in all, I have felt that the class has gone well, though I'm not even close to my old ability of teaching from 6+ years ago when it was a routine and I taught for a living.  Getting back into the rythym has been difficult and fraught with hiccups.  That, and having to constantly stay ahead of the group plus put in time for my clients (several hrs a night on top of prep) have really worn me out.  I ended up crashing early Friday night, sleeping through most of the morning on Saturday, and then sleeping again for 5+ hrs Saturday afternoon simply to catch up.  Even then, I slept for several hrs on Sunday.  This week has been exhausting mentally and physically, but rewarding in many respects.

I have really grown to appreciate the opportunities presented me and I hope that my enthusiasm for the technology and my desire to help my students learn is evident.  Teaching is a wonderful opportunity to share and give back to the community.  I absolutely love it!

Sunday, July 17, 2005 5:14:00 PM (Mountain Standard Time, UTC-07:00)  #    Disclaimer  |  Comments [0]  |  Trackback