Scott Hanselman

Loving Mush - I mean Monad

March 23, '06 Comments [3] Posted in PowerShell | Watir | Ruby | TechEd | Speaking | PDC | XML
Sponsored By

Microsoft Command ShellMaybe if I call the Microsoft Command Shell "mush" enough, it will catch on. MSH, or "Monad" is on my mind lately (again, after a quick and ill-timed dismissal at PDC), thanks to Keith Hill and the wealth of MSH bloggers out and content there. We did the Monad show, but this little shell is no fly-by-night. It's changing (changed?) the face of Windows Administration.

Just as the .NET Framework was "managed spackle" over the chaos that is the Win32 API, just as WinFX cleans it up even more, MSH (IMHO AFAIK if I can abuse the TLAs a bit) is a stunningly clean and well-thought out abstraction layer on top of everything.  To quote Arul: "Monad is the only scripting platform that provides access to .Net, WMI, COM in a well-integrated manner."

It's a shell, in the complete sense, but it's an engine for scripting everything that is already on your system. I'll post more about cool MSH Analyzer is and how you can host Monad in your own Admin applications later.

Here's the links from this week's Hanselminutes, but I'll add more and more at my del.icio.us feed for MSH.

 Pithy and Readable? Do tell!
MSH Wiki @ Channel 9
Monad Team's Technology Blog
Dan Sullivan msh+SMO
Sample Monad-MSH Scripts
Using-Culture -Culture culture -Script {scriptblock}
MSH Analyzer - it is born.
Monad Scripting Center
Getting MSDN help urls for .NET BCL types and Members
viveksharma.com: techlog
Keith Hill's Blog
A guided tour of the Microsoft Command Shell by Ryan Paul
Jeffrey Snover's Monad TechEd Presentation by Webcast
MSHVSS Provider 

Here's some "mush" examples that are fun to read and might give you a tiny taste of what you can do:

Download a feed and list the RSS Enclosures:

$url = "http://feeds.feedburner.com/ScottHanselman"
$feed = [xml](new-object System.Net.WebClient).DownloadString($url)
$feed.GetElementsByTagName("enclosure") | format-list

Find out about your system:

get-wmiobject win32_processor

Get a list of currently loaded Assemblies

[appdomain]::currentdomain.getassemblies() |ft fullname

Listing the currently open Explorer Windows

(new-object -com "Shell.Application").Windows() | select LocationName, LocationUrl

Open an IE window and navigate (smells like Watir...)

$ie = new-object -comobject Internetexplorer.application
$ie.Navigate2("http://www.microsoft.com")
$ie.visible=1

Get the latest Event Log entries:

get-eventlog Application -newest 100 | sort source

I encourage you to check it out. The learning curve is a little high, but at some point it "pops" and you're having a blast.

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

Is Open Source a Crap Idea?

March 23, '06 Comments [12] Posted in DasBlog | Subversion | Bugs
Sponsored By

CSF427The graph at right is from a story in the Economist on Open Source. It illustrates, fairly effectively, that talking and doing are very different and that it's way easier to talk than do - or at least, it must be since so few people do and so many talk.

There are a number of choice tidbits in the article. This sure is true:

"The contributors are typically motivated less by altruism than by self-interest."

When I joined the DasBlog project after the 1.6 release, it was totally because DasBlog wasn't meeting my needs (scale, features, etc) and I thought it'd be easier to contribute than to jump to another engine. Omar has said before that he joined the team to be a better programmer.

As I worked on it more, I used DasBlog, selfishly, as a place to try out ideas and techniques that I would eventually put to use at work.

"Of the roughly 130,000 open-source projects on SourceForge.net, an online hub for open-source software projects, only a few hundred are active, and fewer still will ever lead to a useful product." 

Yikes. That's scathing; I wonder if it's true. SF seems a lot more active and vibrant than that to me, but I could be just seeing what I want to see. Only a few hundred active projects?

With all projects there's a lot of talk, and a lot of time pressure as everyone has a life. It's a little frustrating when folks submit a bug when they could submit a bug and a patch. CVS and Universal Diffs make this a lot easier, but I'm as guilty as the next guy. If it's not fantastically simple to post a patch and have it heard, who has the time to bother? Stuart has offered a number of patches to Subversion, and really struggled to get them into the final product - or even to be heard.

How easy should it be? Is "Right-Click | Make Patch" then "email patch" easy enough?

I'm sure there are (sadly) lots of folks who submitted bugs or asked for help but just happened to pick a bad week where Omar, myself, Tom or the rest of the team was busy with life.

Aside: I wonder if there are crucial patches to the Linux Kernel that didn't get in because Linus had a bad day when the patch was submitted?

It's very difficult to get folks to commit themselves to a project that pays them nothing. The hours are long, the tech support brutal, the users unforgiving and the bugs neverending.

If you work on a Open Source Project, why do you do it? When will you stop?

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 11

March 23, '06 Comments [0] Posted in ASP.NET | TechEd | Podcast | PowerShell | XML | Tools
Sponsored By

HanselminutesMy eleventh Podcast is up. This episode is about Monad (MSH) - the Microsoft Shell. Early reviews from Monad experts are good. Thanks Keith for giving me the kick I needed! :)

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 Automated QA, 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 14 sites mentioned in this eleventh 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: Kanye West - Gold Digger

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

Taskkill and Pskill

March 20, '06 Comments [3] Posted in PowerShell
Sponsored By

A very useful utility included with Windows XP and 2003 that a lot of folks may not be familiar with is Taskkill. This is installed in %WINDIR%\SYSTEM32\taskkill.exe. Here's some examples:

 TASKKILL /S system /F /IM notepad.exe /T
 TASKKILL /PID 1230 /PID 1241 /PID 1253 /T
 TASKKILL /F /IM notepad.exe /IM mspaint.exe
 TASKKILL /F /FI "PID ge 1000" /FI "WINDOWTITLE ne untitle*"
 TASKKILL /F /FI "USERNAME eq NT AUTHORITY\SYSTEM" /IM notepad.exe
 TASKKILL /S system /U domain\username /FI "USERNAME ne NT*" /IM *

Nice things are that you can blow stuff away by Window Title, CPU Time, Status, using filters. It's not as flexible as stop-process in MSH, but I'll talk about Monad on this week's Hanselminutes and in a later blog post.

I've got a batch file called cleanprocesses.bat that is filled with "net stop" and "taskkill" commands that takes my number of processes down from my standard 103 to 50. While extreme, I've found that when I'm giving a talk this makes my machine more stable. (Of course, not starting up the superfluous processes in the first place would be more clever.)

If you're running Windows 2000, I like PSKILL as an alternative.

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

Team Hanselman and Diabetes Walk 2006

March 20, '06 Comments [5] Posted in Diabetes | DasBlog
Sponsored By

BannerLogoUPDATE: For those who couldn't find it, here's the link to make a secure Donation with your Credit Card. In the US, these are Tax-Deductible.

As of 10pm on 3/23, we are 83% of the way there, so if you've been waiting until now to make yourself known, this is a great time to help push us over the edge. I am truly humbled by the outpouring of support. You guys and gals are wonderful and you really make this blog what it is. I loved blogging before, but seeing how you've all come out in full force just underscores not only the power of blogging, but the level of kindness present in the blogging community. Thanks for reading!  You can always see our dynamic updated status here.

UPDATE #2: If you'd like a banner for your blog to display until the walk on May 6th, feel free use this one and link it directly to the ADA here.


This is a technical blog, but I'm not just a technical person full of source code and pomposity.

Two months before my 21st birthday I started peeing a lot. A LOT. Like I was drinking four 2-liter bottles of Sprite a day and was still thirsty beyond belief. We'd just had a family photo taken and I was 130lbs on a 5'11" frame (for those of you outside the US, that's thin.) I was wasting away and looked like death. My father, a Portland Firefighter and Paramedic for thirty years smelled the sugar on my breath and sent me right away to the hospital where my blood glucose level was higher than the meter could read...and it's supposed to be under 100mg/dl.

I spent that spring learning how to give myself shots, four a day, along with a regiment of pills. Twelve years later I have no side effects, knock on wood. Not everyone is that lucky. I recently went to a funeral of a high-school friend who was the exact same age and succumbed to Type 1 Diabetes.

I take three shots a day of Symlin while also wearing an Insulin Pump 24-hours a day, even while I sleep. The pump saves me from an additional six shots a day, which I took for 8 years before the pump. I test my blood sugar by pricking my finger between 8 and 10 times a day - that's about 43,000 finger pricks so far, and miles to go before I sleep.

I consider myself lucky though. My 90-year old grandmother's neighbor friend in the 1920's, before Insulin was widely used (it was discovered in 1921) ate nothing but lettuce and eventually died in childhood. I have friends who have been diabetic for nearly 50 years and had to boil large-gauge needles on the stove before injecting themselves with Pork-derived insulin, basing their decisions on a once-a-day urine check to check their blood glucose level.

Diabetes is endemic. Here's some stats from the NIH:

  • Total: 20.8 million people—7 percent of the population—have diabetes.
    • Diagnosed: 14.6 million people
    • Un-diagnosed: 6.2 million people
  • 1.5 million new cases of diabetes were diagnosed in people aged 20 years or older in 2005.
    • Diabetes was the sixth leading cause of death listed on U.S. death certificates in 2002.
  • Diabetes is the leading cause of new cases of blindness among adults aged 20 to 74 years.
  • Diabetes is the leading cause of kidney failure, accounting for 44 percent of new cases in 2002.
  • About 60 to 70 percent of people with diabetes have mild to severe forms of nervous system damage.

I tell you this not to scare you, or ask for pity. I tell you this because it's the painful truth. It sucks, and it sucks big time. 

This year Team Hanselman, led by myself and my wife, Mo, who had this whole idea, will be walking to fight diabetes on May 6th, 2006. We have set a goal of raising US$10,000. Crazy, huh?

Well, there are over 5000 people who subscribe to this blog (for the technical content, I assume.)

If only 10% of you, dear readers, gave US$20 to this cause, we've met our Team Goal.

If you aren't familiar with Diabetes, perhaps my explanation and the above statistics will help you understand how personally painful this disease is.

Perhaps you've Googled and found my blog useful in the past or you've seen me speak at a conference or local user's group. Maybe you're a blogger yourself and use DasBlog.

If you've ever thought about giving a 'tip' to this blog, here's your chance to make that tip tax-deductible! (if you're in the US) You can also paypal me your donation and I will personally deliver 100% of your money.

  • Pass around the link to this post to your friends, your family. Email it to your company's internal email alias. Show us the power of blogging, of word of mouth and spread the word.

Thanks for your patient attention, we now return you to ComputerZen.com.

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.