Scott Hanselman

Mourning Monad - This whole Monad, MSH, Microsoft Command Shell, PowerShell thing is tearing me up inside

April 28, '06 Comments [7] Posted in PowerShell
Sponsored By

PowerShellThis whole name change thing is tearing me up.

Note the screenshot at the right while searching Microsoft.com for "Powershell." Even Microsoft.com isn't comfortable with the name change.

If you're having trouble getting the downloads as no search engine, even Google, is willing to give up the goods when searching for "PowerShell" or "John Smith" or other fantastically descriptive names, here they are:

I did set up a SlickRun shortcut to PowerShell as well as a msh.bat file in my Windows Folder so I could "moosh" my way to denial.

Here's what I'm going through as Monad becomes Powershell. Or, is it PowerShell? PowerShell! POWerSHELL!

1 - Denial - "this can't be happening to me", looking for former shortcuts or files in familiar places. Setting the table for Monad or acting as if he is still living here. Not crying. Not accepting or even acknowledging the loss.

2 - Anger - "why me?", feelings of wanting to fight back or get even with Monad, for death, anger at the deceased, blaming them for leaving.

3 - Bargaining - bargaining often takes place before the loss. Attempting to make deals with the shell who is leaving, or attempting to make deals with God to stop or change the loss. Begging, wishing, praying for them to come back.

4 - Depression-overwhelming feelings of hopelessness, frustration, bitterness, self pity, mourning loss of Monad as well as the hopes, dreams and plans for the future. Feeling lack of control, feeling numb.

5 - Acceptance - there is a difference between resignation and acceptance. You have to accept the loss of Monad, not just try to bear it quietly. Realization that it takes two to rename a command shell. Realization that Monad is gone (as in death) that it is not Monad's fault, they didn't leave you on purpose. Finding the good that can come out of the pain of loss, finding comfort and healing. Our goals turn toward personal growth. Stay with fond memories of Monad.

Sigh. Come here, PowerShell, gimme an uncomfortable heterosexual hug.

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

Hanselminutes Podcast 15

April 27, '06 Comments [5] Posted in Podcast | ASP.NET | XML | Tools
Sponsored By

HanselminutesMy fifteenth Podcast is up. This episode is about replacing Start|Run.

We're listed in the iTunes Podcast Directory, so I encourage you to subscribe with a single click (two in Firefox) with the button below. For those of you on slower connections there are lo-fi and torrent-based versions as well.

Subscribe to my Podcast in iTunes

Our sponsors are PeterBlum and the .NET Dev Journal.

As I've said before this show comes to you with the audio expertise and stewardship of Carl Franklin. The name comes from Travis Illig, but the goal of the show is simple. Avoid wasting the listener's time. (and make the commute less boring)

  • Each show will include a number of links, and all those links will be posted along with the show on the site. There were a number of sites mentioned in this episode, some planned, some not.
  • The basic MP3 feed is here, and the iPod friendly one is here. There's a number of other ways you can get it (streaming, straight download, etc) that are all up on the site just below the fold. I use iTunes, myself, to listen to most podcasts, but I also use FeedDemon and it's built in support.
  • Note that for now, because of bandwidth constraints, the feeds always have just the current show. If you want to get an old show (and because many Podcasting Clients aren't smart enough to not download the file more than once) you can always find them at http://www.hanselminutes.com.
  • I have, and will, also include the enclosures to this feed you're reading, so if you're already subscribed to ComputerZen and you're not interested in cluttering your life with another feed, you have the choice to get the 'cast as well.
  • If there's a topic you'd like to hear, perhaps one that is better spoken than presented on a blog, or a great tool you can't live without, contact me and I'll get it in the queue!

Enjoy. Who knows what'll happen in the next show?

Now playing: Newsboys - He Reigns

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

DasBlog moved from CVS to SVN

April 27, '06 Comments [5] Posted in ASP.NET | DasBlog | Subversion | NUnit | Tools
Sponsored By

Just an FYI to those who care. Joshua Flanagan has been goodly enough to help us move DasBlog's source from CVS to SVN up on SourceForge. To browse the project on the web, go to: http://svn.sourceforge.net/viewcvs.cgi/dasblogce/

Note: Most DasBlog enthusiasts chase the source code and are running the latest stuff by building it. However, for the rest of us, we do recognize the need for a 1.9 binary release and will get to it soon.

However, if you DO want the code...here's Josh's excellent instructions:

Getting the Code

To retrieve and work with the code, you need a SubVersion client.

  • You can use the command-line client (not recommended) http://subversion.tigris.org/
  • Or you can use the TortoiseSVN Windows shell extension (rockin' sweet): http://tortoisesvn.tigris.org/
    • In either case, you must enable the ASP.NET "hack". It simply requires you set an environment variable before working with SubVersion: set SVN_ASP_DOT_NET_HACK=1.
      NOTE: The new TortoiseSVN will ask you this when you install it. Here's more information about the switch/hack.

The rest of these instructions assume the command-line client. The equivalent actions with TortoiseSVN should be obvious.

The first thing you will notice is that the project root folder (dasblogce), has 3 subfolders:
 [branches]
 [tags]
 [trunk]

These 3 folders are a common convention in Subversion repositories. You can read about them in the Subversion book http://svnbook.red-bean.com/. If you are new to Subversion, I highly recommend you read the first 3 chapters. If you are already familiar with Subversion and how to use these folders, you can skip down to the section labeled *DasBlog Specifics.

For example, to checkout a working copy of the entire codebase, you would use the following command:

svn checkout https://svn.sourceforge.net:443/svnroot/dasblogce/trunk dasblogce

This will create a new folder on your filesystem named dasblogce which contains all of the data under the trunk folder. Nothing from branches or tags will be retrieved.

The DasBlog trunk folder has the following layout:
 [docs]
 [lib]
 [source]
 [tools]

The source folder contains only the source code and automated unit tests created by the DasBlog development team. Under CVS, this folder held all files related to the project. The following sections will describe the new location for files that are not considered part of the DasBlog source code, but are still kept with the project.

The docs folder contains all documentation and reference material (URL links). This includes the readme, license, and release notes.

The lib folder contains all compiled 3rd party assemblies referenced by the source code projects.
These files used to be in the source\Assemblies folder. The projects under the source folder have been updated to reference the files in the lib folder (which is why it is important to checkout the entire trunk, and not just the source subfolder, when working on code).

The tools folder contains all of the executables needed to support the development and packaging of DasBlog (not including the .NET Framework itself). For example, the tools\nunit folder contains all of the nunit executables required to run the DasBlog unit tests. Note that the nunit.framework.dll referenced by the test projects is copied to the lib folder - source code should not reference files in the tools folder directly. Keeping the tools stored with the project helps ensure that all developers on the project always use the same version. (You will want to remove NUnit from your GAC to avoid overriding the project copies.) For more information about this strategy, check out Mike Robert's excellent article "How to setup a .NET Development Tree":

Kudos and big thanks to Josh for taking the initiative on this!

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

Open Source versus Source Out in the Open

April 25, '06 Comments [8] Posted in DasBlog | NUnit | NCover | Nant | XML | Bugs
Sponsored By

An interesting point came up during my talk at Deeper In .NET on Saturday. (Korby Parnell has a flattering writeup as does Avonelle, BTW)

There's a difference between "Open Source" and "Source in the Open."

I've seen folks copy and paste directly from Google Groups and when prompted for a bit of code's origin they announce "It's Open Source."

Despite what many folks may have gleaned from some recent thinking out loud, I'm a fan of Open Source. Within the context of just .NET, I think that the (Windows Development) world is a much better place due to widely successful Open Source applications like NAnt, NUnit, log4net, NCover, Subtext, SharpDevelop, etc.

These projects are great places to learn how to code in .NET.

I made a comment at a conference once, where a lot of folks were badmouthing XML, complaining that the XML spec misses a number of important, albeit edge, cases and that it was generally a mess. Not meaning to be snarky (but succeeding) I introduced our next talk saying "I can't talk to the previous speakers concern about XML, but at Corillian we use success as a metric."

That's really what it comes down to. When you copy/paste/refactor/beg/borrow/steal someone else's code and put it into your application it's important that you know at least two things:

A. What it does.
2. That it works.

When one finds code in production (and you know you've found this yourself) with a link to a Google Group's thread embedded within the code's comments, you might want to pause a moment.

I'm much more likely to snarf an algorithm or technique from NUnit or SharpDevelop because I know those applications work and work well. They are successful by virtue of the fact that they are used. What they lack in Unit Tests they make up in sheer code coverage.

DasBlog has a number of nasty bugs lurking, some we know about, most we don't. However, it's tested every day on this blog and others. I know what it's good at and what it's not.

When an application is a trusted, used, successful "Open Source" Application, chances are it's code is more trustworthy than "Source in the Open."

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

Speaking Schedule - 2nd Quarter 2006

April 25, '06 Comments [10] Posted in PowerShell | Ruby | TechEd | Speaking | XML | Web Services | Tools
Sponsored By

Just wanted to post about a few upcoming talks I've got:

  • Friday, April 28th, 2pm - Portland State University (Smith Memorial Student Union (SMSU) Room 236) - Monad PowerShell, Microsoft's new Command Shell
  • Tuesday, May 9th, 2006, 5:30pm - Pittsburgh.NET - Topic TBD
  • Just Added: Wednesday, May 10th, 2006, ~6:00pm - North Dallas.NET - Advanced System.Xml
  • Thursday, May 11th, 2006, 6:00pm - Dallas .NET - Essential Tools for the Effective Developer
  • Monday, June 12th, 2006, 5:30pm - (During TechEd!) - Beantown.NET - Essential Tools for the Effective Developer

I'm also presenting at TechEd with Patrick Cauldwell a session for the ARC track called "Dirty SOAP: A dynamic SOAP endpoint, how and why."

Here's our synopsis from the TechEd site. Sign up now so we know how many chairs to bring.

ARC310 - Dirty SOAP: A Dynamic Endpoint without ASMX - How and Why?
Speaker(s): Patrick Cauldwell, Scott Hanselman
Time: 6/13/2006 - 4:30pm-5:45pm
Session Level(s): 300
Not every large system in the wild can use .NET 2.0, ASMX and "Indigo". Often the real world isn't very pretty, and/or formal use of .NET ASMX Web Services doesn't lend itself to a particular solution. Corillian's software handles a quarter of the nation's retail banking online population with .NET. The system is built with a contract-first approach using WSDL and a custom binding to generate in-process service proxies. When it came time for Corillian to present their Operations as SOAP, we created a dynamic endpoint-WITHOUT ASMX. We then extended it to support POX (Plain Old XML). In this session, we discuss the architectural and design ramifications of managing a dynamic endpoint and how this decision will positively or negatively affect our move to WCF.

Additionally, John Lam and I will be giving a joint Birds of a Feather on Ruby and .NET and his brilliant RubyCLR Bridge one evening.

Hope to see you!

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

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