RSS 2.0
 Tuesday, August 26, 2008

I got an email this morning, as I'm sure many of you did, from Lutz Roeder ...

After more than eight years of working on .NET Reflector, I have decided it is time to move on and explore some new opportunities.

I have reached an agreement to have Red Gate Software continue the development of .NET Reflector. Red Gate has a lot of experience creating development tools for both .NET and SQL Server. They have the resources necessary to work on new features, and Reflector fits nicely with other .NET tools the company offers. Red Gate will continue to provide the free community version and is looking for your feedback and ideas for future versions.

 

Here is the new page for .NET Reflector.

Tuesday, August 26, 2008 10:04:56 AM (Mountain Daylight Time, UTC-06:00)  #    Comments [0] -
Community | Development
 Thursday, July 24, 2008

But at least I had a cool party to send me off to my next 40 years. Last Saturday, around 140 of my closest friends and family converged on a park in Boise to roast a pig, drink from the keg, and poke fun at the new-old guy.

image

Wish you were here. Maybe at my 80th.

Thursday, July 24, 2008 9:05:11 PM (Mountain Daylight Time, UTC-06:00)  #    Comments [1] -

 Thursday, July 17, 2008

Wow, two great speakers in less than a month. Last month, we had Kalen Delaney speaking at Boise's inaugural SQL Server User Group and tonight at the Idaho .NET User Group, Kathleen Dollard an INETA speaker is sharing her "Twelve Gems and Eight Dragons talk."

dollard

Here are the Twelve Gems

  • System.AddIn - one of two new features in 3.5 that are getting overlooked; allows you to let other people provide customization to your application; wraps everything about managing app domains; check out the Pipeline Builder tool on CodePlex
  • HashSet - sets = groups and very high performance, and sets are mutable; LINQ allows set-type functions, but is missing some features and always returns copies
  • WPF Async Data Loading - Asynchronous behavior offered for instance loading and (sometimes) property retrieval, by leveraging the ObjectDataProvider IsAsynchronous property in XAML
  • Generic Classes C# - Generic classes encapsulate operations that are not specific to a particular data type; the most common use for generic classes is with collections like linked lists, hash tables, stacks, queues, trees, and so on. Operations such as adding and removing items from the collection are performed in basically the same way regardless of the type of data being stored; Why generics? improve performance, enhanced behavior with 3.5, improve robustness by catching typing errors at compile time, reduce amount of code via generic refactoring; Kathleen's guidance is to stop using System.Collections and replace it with System.Collections.Generic
  • Refactor/Rename - in her opinion the most commonly used refactoring; now available in Visual Basic as well
  • Snippets (your own) - Microsoft's provided snippets are marginal; Kathleen says not to use Microsoft's snippet editor, but rather Bill McCarthy's Snippet Editor 2008 instead
  • Understanding Your Code - static analysis (FxCop, VSTS Code Analysis - but custom rules are hard), code-based analysis (CodeIt.Right and StyleCop), and VSTS Code Metrics (maintainability index, cyclomatic complexity, depth of inheritance, class coupling, and lines of code) - cool and (some parts) are useful, unit test code coverage, and performance
  • Data Driven Unit Testing - data sources define conditions, can be Excel, quality team can be included and expand the list, consider naming classes by condition, do not demand 1:1 class correspondence, and anticipate n:1 test correspondence
  • Extension Methods - Extension methods enable you to "add" methods to existing types without creating a new derived type, recompiling, or otherwise modifying the original type so you don't have to wait for Microsoft to provide functionality you've been waiting for;
  • System.Exception.Data - a key/value pair collection to provide additional, user-defined information about the exception
  • Partial Methods - separate responsibility, pretty useless unless they can interact; partial methods allow interaction between partial classes; they required definition of clear extensibility points and are a replacement for intra-object dependency
  • Document Outline - provides an outline view of elements and scripts in the current document (Web or Windows forms)

Here are the Eight Dragons

  • VB vs. C# nullable operators - be careful here because a lot of combinations of =, <, >, etc. may give unexpected results
  • Inheriting from Collections. Generic.List - Microsoft decided List should have max performance so they sealed everything to avoid virtual table calls, so you can't modify, add events, anything;
  • Interface versioning - everything implementing the interface is broken, so create a new interface or consider using a base class
  • Immutability in anonymous types - once you place something in a dictionary, its hash must not change; anonymous types are used most in LINQ; in C#, all instances of anonymous types are immutable, but VB uses a key to define a immutable fields of anonymous types and if the key is missing, it will use reference semantics so for LINQ consistency, uses full value semantics in LINQ
  • The New constraint - the most useless piece of junk related to generics; generics provide 3 constraints: base, interface, and new; the "New" constraint requires public parameterless constructor and this is not consistent with most good development; instead you should use reflection to instantiate
  • Unexpected LINQ evaluation

Landscape Complexity

  • if we are feeling overwhelmed (and we should be given the complexity of .NET 3.5) with so many languages, data bases, server solutions, data access, presentation
  • There is a frightening pace of change, which is a generally a good thing, but we are losing hobbyists, one man shops
  • No one is competent anymore
  • You cannot know it all
  • Code for change - assemblies (n-tier and beyond, wrap XML, wrap communication, wrap office automation, wrap special library access) , class design (interface coding, partial classes, generics), code design (lambdas, LINQ core), big picture (source control, CI, reluctant polyglot programming, code generation, testing, metadata - DRY4D - don't repeat yourself in the 4th dimension (time)

Other terms overheard this evening

  • Polyglot Programming - using the best language for the job; in this case, C# or VB :-)
  • CTRL + Shift + V - Cycle through the clipboard in Visual Studio
  • CTRL + A + C - Copy the text out of a dialog window
Thursday, July 17, 2008 9:13:53 PM (Mountain Daylight Time, UTC-06:00)  #    Comments [0] -
Community | Development | INETA | Visual Studio 2008
 Wednesday, July 02, 2008

I'm sure most of you have seen the (original) movie Predator, released back in 1987.

First, Jesse Ventura became the governor of Minnesota in 1999. Next came Arnold Schwarzenegger who became governor of California in 2003. Also in 2003 Sonny Landham ran for governor of Kentucky. He is now running for the US Senate.

image

Wednesday, July 02, 2008 3:58:09 PM (Mountain Daylight Time, UTC-06:00)  #    Comments [1] -

 Tuesday, July 01, 2008

I got an opportunity to attend the LA C# User Group tonight, and listen to Mike Vincent speak on this subject. I'm familiar with the concepts and capabilities of dynamic languages, but looked forward to getting my questions answered.

Michael Vincent

The behaviors of a dynamic language include several cool behaviors:

  • Extend the program by adding new code
  • Extend objects and definitions
  • Modify the type system

The downside:

  • No compiler safety net
  • IDE maturity such as Intellisence
  • TDD becomes very important

The Dynamic Language Runtime (DLR) adds a set of services on top of the CLR to support dynamic languages. It will be distributed with Silverlight, IronPython, and IronRuby. Here's a cool graphic Scott Hanselman posted last year that explains the roadmap past, present, and future:

Other notes:

  • The Silverlight CLR 2.0 won't support CodeDOM, so the need for a dynamic language really becomes evident.
  • Django is a high-level framework for Python comparable to Ruby on Rails, and at PyCon 2008 (March 2008) Microsoft demonstrated Django's use on Iron Python
  • John Lam demonstrated Ruby on Rails running on IronRuby at RailsConf (May 2008)

On a side note, one of the attendees told me about the Google App Engine, allowing you to run your application on Google's infrastructure.

You can download Mike's presentation here.

Tuesday, July 01, 2008 9:31:21 PM (Mountain Daylight Time, UTC-06:00)  #    Comments [0] -
Community | Development | INETA
 Wednesday, June 25, 2008

Tonight is the maiden voyage of the Idaho SQL Server User Group and what a way to send it off - with Kalen talking about SQL Server 2005.

Counting heads in the room, it looks like we have about 33 people, including Kalen and Cindy Gross (Microsoft). That's a nice sized group for an evening gathering of a user group in Boise.

After enlightening us with her background, and deep history working with SQL Server, Kalen jumped right into the nuts and bolts of SQL Server 2005: The Costs of Concurrency.

Wednesday, June 25, 2008 6:19:27 PM (Mountain Daylight Time, UTC-06:00)  #    Comments [0] -
Community | SQL Server
 Wednesday, May 28, 2008

In typical FireStarter event style, this event will be delivering a first class experience to all attendees and make them experts on developing on SharePoint technologies before the end of the event. There should be great speakers from the Microsoft roster presenting some awesome topics that will help you build and customize web sites with SharePoint and Web 2.0 technologies.

 

spfirestarter


Logistics


Where: Microsoft Conference Center (Building 33) – Kodiak Room

When: June 11th 2008 - Wednesday

Free stuff: Breakfast and lunch provided, lots of swag

Attending

Click here to register to attend In-person 

Click here to attend via Live Meeting! (the in-person event will have a better experience)


If you have any questions, please contact Mithun.

Wednesday, May 28, 2008 11:38:56 AM (Mountain Daylight Time, UTC-06:00)  #    Comments [0] -
Conferences | Microsoft

Elegant Code is hosting an Open Spaces session.  An Open Spaces session is a discussion where the attendees generate the topics. There will be no presentation, no lecture, no PowerPoint slides, etc.  The main point of this is a discussion were all the attendees can grow and learn from each other. The topics for discussion will be created by the group. The discussion will be facilitated, but just to keep the conversation going, not to drive it in any direction.

The first one will be held on June 3rd, at the Casa Mexico Restaurant in the Hyde Park section of Boise.  They offer beer and wine in addition to the great "South of the Border" food.

If you would like to attend, please RSVP at scott.schimanski@gmail.com.

Location

Casa Mexico Restaurant  1605 N. 13th St. (Hyde Park), Boise, Idaho (Downstairs in the brick building)

When

Tuesday evening, June 3rd, 6:30-8:30.

Wednesday, May 28, 2008 11:15:49 AM (Mountain Daylight Time, UTC-06:00)  #    Comments [0] -
Community | Development
 Sunday, May 18, 2008

Can someone please help them? While traveling through PHX today, on my way to Houston, I logged on to their "Sky Harbor Public WLAN" and actually got connected. They must have upgraded their gear, because a year ago it was not so friendly. Also, all of the US Airways clubs have ditched their private wireless networks and gone with using the general Sky Harbor Public WLAN network, which means even more travelers will see this embarrassing error:

Sky Harbor SSL Error  Sky Harbor SSL Error

Sky Harbor SSL Error  Sky Harbor SSL Error

Maybe I can convince my friends in the Phoenix web-dev community to give them a call at (602) 273-3300 and help them out!

Sunday, May 18, 2008 8:00:03 PM (Mountain Daylight Time, UTC-06:00)  #    Comments [1] -
Community
 Thursday, May 01, 2008

The newly formed Boise SQL Server User Group kicks off its first meeting with Kalen Delaney on June 25, 2008.

I'm happy to see a Microsoft SQL Server user group in Boise. It will fit nicely with the other development and SharePoint groups in town.

For more information, contact Cindy Gross of Microsoft.

Thursday, May 01, 2008 10:45:07 AM (Mountain Daylight Time, UTC-06:00)  #    Comments [0] -
Community | Microsoft | SQL Server | SQLblog
 Saturday, April 19, 2008

This is a very popular question on various forums, but none of them exactly answered the problem for my situation, so I wanted to share my approach.

Scenario

  • Windows Server 2003 (local)
  • Windows Server 2008 (remote)
  • HP4345MFP installed on my (local) home network at IP Address 192.168.1.115 port 9100

HPProperties

  • I'm sitting at the (local) 2003 server and when I remote desktop (RDP) into my (remote) 2008 server I want to print locally to my HP. Seems like a common use case, but I couldn't get it work for the life of me, until today.

Fix Attempt 1 - Enable local devices (didn't help)

Checked the box on the Remote Desktop Connection options to enable local printer devices.

RDPOptions

Fix Attempt 2 - Try fix mentioned in article 302361 (didn't help)

The article mentioned a registry hack, which I tried even though it said that (local) Windows Server 2003 machines were exempt from needing the fix.

Fix Attempt 3 - Install the HP4345 driver on the (remote) Windows Server 2008 (didn't help)

This step made sense to me, because the applications local to the remote server would need to have a local driver to print against. I installed the HP LaserJet 4345 mfp PCL 5 driver, but it didn't help. I left the driver on there.

Fix Attempt 4 - Rename the printer to the exact same name as on the local machine (didn't help)

I found a couple of threads that mentioned this, so I did it. I named the (remote) Windows Server 2008 printer HP the same name as the (local) Windows Server 2003 printer: HP4345MFP.

HP4345Local HP4345Remote
Local HP4345MFP Properties Remote HP4345MFP Properties


Fix Attempt 5
- Change the port of the Remote HP4345 printer (Success!)

My last resort was going to be to configure the server to connect back through the Internet to my home network, opening up port 9100 to the world. While researching this, I came across a possible solution. Thinking that the remote desktop session would provide some hooks into my local machine's ports, I opened the Properties window of the remote printer (as Administrator) and started going down the list of interesting ports beginning with TSXXX. Some of these were titled Inactive TS Port and some had "Gemini" in the description. Gemini is the name of my local computer, so I knew I was close. I started checking boxes and doing trial prints, until the LaserJet came to life. For me, TS003 was the winner!

HP4345RemotePorts

Saturday, April 19, 2008 1:19:23 PM (Mountain Daylight Time, UTC-06:00)  #    Comments [2] -
Microsoft | Windows Server 2008

I had to show off my three amigos here. In 2007, as in 2006, I logged enough Global Impact activities to achieve the gold status award. Along with it came the bronze and silver awards as well. This time, they are mounted to more easily sit on a shelf ... or so that the RDs don't try to use them in a car wash or something.

RD2007Awards

... and I'm already hard at work in 2008 working to link companies and the community with Microsoft.

Congrats to some of my fellow RDs who also achieved the gold award: Tomislav Bronzin (Croatia), Damir Tomicic (Germany), Jonathan Goodyear (US), Tedeusz Golonka (Poland), Vinod Unny (India), and 40 others.

Learn more about the Microsoft Regional Director (RD) program here.

Saturday, April 19, 2008 12:47:27 PM (Mountain Daylight Time, UTC-06:00)  #    Comments [1] -
Community | Microsoft
 Thursday, April 10, 2008

You'd think this would be simple wouldn't you? Well, I liken it to trying to get out of a Casino - the doors are not clearly marked, for obvious reasons.

Here's my scenario

I have a domain (or two) registered at GoDaddy, because I purchased the domains from somebody and/or had a knee-jerk reaction to their cheap rates and/or wanted to use their heightened protection and affiliated Domains By Proxy service. In any event, I'd rather move them to my preferred registrar: DirectNIC. I've been with them for years and their services are exactly what I need and their UI is (ahem) easy to understand.

First, I started by reading this guy's blog post, but it only gets me so far. I've updated the instructions to include steps for handling Domains By Proxy and the transfer to DirectNIC.

Part 1 - Unlock/un-protect the domains

1. Login to GoDaddy using your customer # / login name and password.

2. Click on the Domains > My Domains link on the menu.

3. Check the box next to the domain(s) you want to transfer and click the Locking link on the menu bar.

4. Select Unlock and click OK.

5. Click OK again to confirm.

6. Click the domain link of the domain you want to transfer.

7. Verify Domain Ownership Protection is off.

If Domain Ownership Protection is ON (i.e. you have the platinum registration), then you need to call GoDaddy and get manual instructions, involving an email exchange. Quite painful, but very protective.

8. Click the Authorization Code Send by Email link and then click OK to send the email

9. Monitor the email account associated with the domain registration and retrieve the 16 character authorization code.

 

Part 2 - If you have registered privately using Domains By Proxy

1. Login to DomainsByProxy using your customer # / login name and password (which may not be the same as your GoDaddy ones).

2. Click the My Domains link.

3. Locate the domain(s) you want to transfer and check the boxes to "Cancel Your Private Registration" and click Continue.

4. Confirm by selecting Yes and clicking Submit.

If you are stopped because of a "One or more selected domains have domain protection on." message, then see step 1-7 above.

5. Repeat for the other domains you want to transfer.

 

Part 3 - Initiating the Transfer to DirectNIC

1. Login to DirectNIC using your username and password.

2. Click the Domain Transfers link on the left.

3. Enter the domain(s) you want to transfer and click OK.

4. Confirm the contact information and click Continue Purchase.

5. Specify how many years to register and click Continue Purchase.

6. Enter billing information and click Purchase.

7. Transfer request email(s) is/are sent to the administrative contacts for the domain(s) being transferred.

 

Part 4 - Approving and Finalizing the Transfer

1. Monitor the email account of the GoDaddy domain administrative contact.

2. In the email sent from DirectNIC, click the link at the bottom to approve the transfer.

3. On the DirectNIC page, select Approve and enter the Authorization Info received in 1-9 above and a contact phone number.

4. Say goodbye to Daddy.

Thursday, April 10, 2008 12:19:43 PM (Mountain Daylight Time, UTC-06:00)  #    Comments [4] -

 Wednesday, April 02, 2008

We all know the sedentary lifestyle of your classic IT person can lead to ... shall we say ... bloat. I regularly joke that the only thing bigger than your typical (Unix) system administrator is his beard. I jest.

Anyway, we do what we can to avoid the bloat, including running (literally) some form of carbon-based defrag on a regular basis, to compact that extra space.

... and it may be working across the industry.

Here's my evidence.

When registering for a Microsoft developer event in 2005, notice the shirt sizes go to 6XL ...

ConferenceShirts2005

But, for this year's Tech-Ed Developer conference, only 4XL ...

ConferenceShirts2008

I'm going to assume that Microsoft has leveraged the cool data-mining features in SQL Server to determine that 5XL and 6XL sizes are vanishing.

Wednesday, April 02, 2008 7:18:18 PM (Mountain Daylight Time, UTC-06:00)  #    Comments [1] -
Conferences | Development
 Wednesday, March 19, 2008

It's generally known that if you want to run any tests, code analysis, or database project build/deployment that you need to install one or more Team Edition of VSTS on your build server. What's not so well known are the licensing ramifications around these scenarios.

Fortunately Jeff Beehler, Team System Chief of Staff, has posted on this subject.

To summarize:

If the users creating the builds are licensed users of the edition in question (or Team Suite), that license extends to Team Foundation Build and you don't need to purchase an additional license. One way to think about it is: the people that are using the Team editions need to be properly licensed which in turn ensures the that the build machines are covered as well. Users who merely queue (execute) and review the automated builds are only required to have a Team Foundation Server CAL.

Wednesday, March 19, 2008 9:29:07 AM (Mountain Daylight Time, UTC-06:00)  #    Comments [0] -
Microsoft | SQLblog | Team System
 Friday, February 29, 2008

Back home now, and I have a moment to get the photos downloaded from my camera and uploaded to my blog. Next time I'll take my SD card reader with me.

As you can see, registration was quite busy. I heard that there were 4000 people there, but didn't count them myself. The long lines delayed the keynote by about an hour:

vs2008launchreg

Douglas McDowell and I snuck into the press area. Well, he was officially press (SQL Server Magazine), but I wasn't - still I took more notes than most of the other pressies there.

vs2008launchdoug

The main screen was huge, and 3D. We estimated about 80' wide and 20' tall. When no slides were on the screen, there was a spinning 3D Earth enclosed in curley brackets. Hey, what about VB?

vs2008launchscreen

After the keynote, there was a short walk to the LA convention center, where the breakout sessions, chalk-talks, exhibitor area, etc. Fortunately, we had these interpretive dancers along the way to keep us from getting lost.

vs2008launchdancers

The line to lunch was too long, so we ducked inside to check out the exhibitor area.

vs2008launchlunch 

I was there (where it says "You Are Here")

image

Attendees attending one of Doug Seven's chalk talks on Team System.

vs2008launchtalk

Doug was all about the writing quality code and the 3 C's in his talk (Code Coverage, Code Analysis, and the new Code Metrics)

vs2008launchseven

After I turned in my evaluation form, I picked up the attendee bag, which had  lots of goodies, including a hard-bound, coffee-table style book called "Heroes Happen Here" which contains IT heroes from all around the world, photographed by Carolyn Jones. And yes, I got my book signed!

vs2008launchjones

Friday, February 29, 2008 7:55:44 AM (Mountain Standard Time, UTC-07:00)  #    Comments [0] -
Conferences | Microsoft | SQLblog | Visual Studio 2008
 Thursday, February 28, 2008

10:35 AM (Los Angeles)

A fictitious developer, from the fictitious company "Fourth Coffee" is demonstrating the new, agile development features in Visual Studio 2008. She's showing off how to manage team development projects (a.k.a. team projects and work items), giving her tasks to make some changes to her code. Mostly she is showing off the split-screen editor, synchronization of code and designer, integrated design tools, and the new JavaScript debugger.

vs2008launchvsts

Oops, she just called it "Team Services" as she closed out her work item. Well, we get the idea. :-)

Thursday, February 28, 2008 2:40:12 PM (Mountain Standard Time, UTC-07:00)  #    Comments [0] -
Conferences | Team System | Visual Studio 2008
Archive
<August 2008>
SunMonTueWedThuFriSat
272829303112
3456789
10111213141516
17181920212223
24252627282930
31123456
About the author/Disclaimer

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.

© Copyright 2008
Richard Hundhausen
Sign In
Statistics
Total Posts: 696
This Year: 32
This Month: 1
This Week: 0
Comments: 485
Themes
Pick a theme:
All Content © 2008, Richard Hundhausen
DasBlog theme 'Business' created by Christoph De Baene (delarou)