Jeffrey Snover's Monad TechEd Presentation ... now by Webcast

If you were one of the many that missed Jeffrey’s standing-room-only presentations at TechEd, the kind folks at TechNet feel your pain. They’ve decided to host a series of “Best of TechEd” webcasts, and our two presentations are among them. If you want to learn more about the capabilities of Monad, be sure to check these out. **Session 1: Next Generation Command Line Scripting with Monad (Part 1 of 2) (Level 300)

Monad, RSS, XML, and other cool tricks

Adam has been fleshing out a great use of Monad – by creating a mini command-line RSS reader! It’s touched on registry modification, XML parsing, internet access, and more. Check it out, if any of those buzz words interest you :) All we need to do is throw AJAX and Web 2.0 into the mix, and we’ll have a home-run IPO! [Edit: Monad has now been renamed to Windows PowerShell. This script or discussion may require slight adjustments before it applies directly to newer builds.

Creating SQL's "join"-like functionality in MSH

An interesting thread came up on our BetaPlace newsgroup today, asking if MSH supports a SQL-like join command. After all, we do already support the select-object cmdlet, which allows you to pick individual properties for display. Given our display model (that often looks and feels like a SQL grid output,) this is a totally great question. It’s a feature I’ve always wanted in a shell, too. We don’t support the feature natively, but the MSH language sure does.

MSH and YubNub -- A community commandline

The new YubNub service looks fairly interesting. It’s a concept that’s been hashed out a million times by individual, isolated programs: use one search interface as a gateway to many others. Given a keyword and a search term (ie: gim porsche 911,) the gateway will format your search term for use in a Google Images search. Internet Explorer supports this via its SearchUrl feature. MSN Desktop Search supports it through its Deskbar Shortcuts (community version here,) and I even wrote a small Javascript application called SearchPad to do the same.

Fixing the headphones on a Nomad Zen Xtra

On a recent road trip to Calgary, I started to notice the left channel of my Nomad Zen Xtra becoming flaky. Since I use it in my car stereo, my unlucky passenger usually got the duty of contorting the connection wire “just so” in order to let us hear both channels of sound. Since I already voided my warranty by replacing the hard drive (30gb upgraded to 80gb,) I decided to look into fixing it myself.

Updated Monad (Microsoft SHell) released to BetaPlace!

I used to have download links here, but they were for an older version of Monad. But I’m still getting plenty of hits per day for it, and needlessly sending people on a wild goose chase. Since Thomas has been doing a great job of keeping his Reskit.net up to date with the latest Monad Download information, I’ll point you to him for the best Monad Download information. [Edit 01/25/06: Removed Beta download links, and instead point to Thomas' continually updated download links.

A Web-enabled, Monad front end: Monad hosting.

Preston wrote a piece, pointing to an interesting Web application called “WebCmd”. WebCmd makes your browser act like a console window. You type in commands, it executes them on a remote server, and returns the results. Currently, a-i-studio accomplishes the web-based interactivity via Javascript, with the heavy lifting performed by a server-side Perl script that executes commands. It’s a neat idea, and leads to even better ones (as Preston pointed out.

Customizing your environment -- Aliases, and Dot-Sourcing

Since it takes a little while to get approved by BetaPlace, I’m going to hold of on the answer to prompt customization until next time. However, we do have some more cool things that will help you customize your environment. The MSH shell is designed to be both verbose, and pithy. (Jeffrey’s Channel9 interview quote springs to mind.) We enable this through the use of aliases, like many other shells.

Getting started - customize your prompt

Ok, so I’ve talked about how great the Monad language, and command-line interface is. I’ve also said that it changes the way you think about the command line. How so? Well, let’s play with the shell for a bit. If you haven’t already downloaded it, you can get it from BetaPlace: Go to http://beta.microsoft.com Log in using the guest ID, mshPDC Follow the download directions Launch the shell, and you’re greeted with the friendly prompt:

Welcome, and the project code-named Monad

Welcome, all. First off, let me introduce myself. I work for Microsoft as a software design engineer. I’ve been at Microsoft for three years now – first working in MSN at Encarta. I recently joined a team that hosts my hobby-turned-full-time-job: Microsoft’s new command-line shell, code named Monad. It’s fascinating technology, so I’ve been planning to set up a blog on the topic. A firestorm of internet activity today prodded me to get this blog up sooner rather than later.